Lister fichiers sur serveur web [Résolu]

Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Dernière intervention
8 septembre 2014
- - Dernière réponse : TheGorgo
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Dernière intervention
8 septembre 2014
- 10 juin 2010 à 17:19
Bonjour,

Je cherche à lister le contenu d'un serveur web sur lequel il n'y a pas de fichier index.*

J'aimerais que mon HttWebRequest me retourne la liste des fichiers et dossiers, comme le fait n'importe quel navigateur quand il n'y a pas d'index.

En paramètre je passe une URL qui pointe sur le dossier en question -> http://monServeur/monDossier/

HttpWebRequest me retourne une erreur 404.

Quelqu'un saurait-il comment faire ?

Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
0
Merci
Salut, en espérant que ce lien te donne satisfaction : lien

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Commenter la réponse de cboulas
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Dernière intervention
8 septembre 2014
0
Merci
Merci pour l'aide, j'avais fait le tour de google en tapant HttpWebRequest mais j'avais pas pensé à aller voir du côté des aspirateurs de site.

Je poste la solution pour ceux que ca interesse :

    class Program
    {
        public static void Main(string[] args)
        {
           string urlBase = "http://....../";
           string filesFolderUrl = urlBase + "/Dossier";

           HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(filesFolderUrl);
           HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

           if (httpWebResponse.StatusCode == HttpStatusCode.OK)
           {
               Stream rs = httpWebResponse.GetResponseStream();
               StreamReader sr = new StreamReader(rs);
               StringBuilder sb = new StringBuilder();

               char[] read = new Char[256];
               int count = sr.Read(read, 0, 256);

               while (count > 0)
               {
                   sb.Append(read, 0, count);
                   count = sr.Read(read, 0, 256);
               }
               sr.Close();
               httpWebResponse.Close();

               // Extract  from html
               string expression = @"]*?HREF\s*=\s*[""']?" + @"([^'"" >]+?)[ '""]?>";
               Regex regEx = new Regex(expression, RegexOptions.Multiline | RegexOptions.IgnoreCase);
               MatchCollection matches = regEx.Matches(sb.ToString());

               Console.WriteLine(sb.ToString());

               foreach (Match match in matches)
               {
                   // extract href attribute value
                   string href = Regex.Match(match.Value, "([""'](?.*?)[""'])", RegexOptions.Multiline | RegexOptions.IgnoreCase).Value;
                   href = href.Replace(""", "");

                   // foldernames start and end with / but files only start with /
                   if (href.StartsWith("/") &&  !href.EndsWith("/"))
                   {
                       string fileToGet = urlBase + href;

                       Console.WriteLine(fileToGet);
                       // file download code here...
                   }
               }
           }
       }
    }


Trouvée :
Commenter la réponse de TheGorgo
Messages postés
2
Date d'inscription
mardi 29 juillet 2003
Dernière intervention
10 juin 2010
0
Merci
Super !! c'est exactement ce qu'il me faut. Seulement je viens de tester...
et la page HTML est bien lue oui, mais l'expression réguliere ne trouve rien.
Je la trouve illisible, je ne sais pas ce qu'elle fait (je comprend dans les grandes lignes, mais pas en détail)
Donc impossible de changer quoi que ce soit :-s

Quelqu'un pour expliquer ?
Commenter la réponse de cryoxyde
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Dernière intervention
8 septembre 2014
0
Merci
Salut,

Je la trouve aussi illisible.
Apparement elle est sensée extraire les liens.
Commenter la réponse de TheGorgo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.