Im folgenden Beitrag habe ich die Beispiele folgte meine Httprequest und Listendateien aus WebServer Verzeichnis zu erstellen: C# HttpWebRequest command to get directory listingHttpWebRequest Befehl Verzeichnis erhalten Auflistung
Ich versuche, das Beispiel dort zu verwenden, um Dateien von meinem Web-Server zur Liste . Ich kann die Dateien von dem Beispielserver auflisten, der auf dem Link angegeben ist, aber mein Server zeigt nur die zuletzt hinzugefügte Datei an. Mein Code ist genau wie das Beispiel dort. Ich habe festgestellt, dass mein HTML-Code ein wenig anders ist. Jemand eine Idee hat:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>186.215.156.154 - /download/Zatix/Zatix - Satisfação Geral/</title>
</head>
<body>
<h1>
186.215.156.154 - /download/Zatix/Zatix - Satisfação Geral/</h1>
<hr>
<pre>
<a href="/download/Zatix/">[Para a pasta superior]</a>
<br>
<br>
sexta-feira, 19 de novembro de 2010 11:17 52355 <a href="/download/Zatix/Zatix%20-%20Satisfa%C3%A7%C3%A3o%20Geral/Zatix%20-%20Satisfa%C3%A7%C3%A3o%20Geral_3_00.zip">Zatix - Satisfação Geral_3_00.zip</a><br>sexta-feira, 19 de novembro de 2010 11:17 52355 <a href="/download/Zatix/Zatix%20-%20Satisfa%C3%A7%C3%A3o%20Geral/Zatix%20-%20Satisfa%C3%A7%C3%A3o%20Geral_4_00.zip">Zatix - Satisfação Geral_4_00.zip</a>
<br>
</pre>
<hr>
</body>
</html
Ich glaube, ich habe etwas in der Rückkehr von GetDirectoryListingRegexForUrl Methode ändern.
ist mein Code so etwas wie dieses:
private string GetDirectoryListingRegexForUrl(string url)
{
if (url.Equals(Url));
{
return "<A HREF=\".*\">(?<name>.*)</A>";
}
throw new NotSupportedException();
}
public void ListStudies()
{
Url = BaseUrl + this.clientName + "/" + this.activeStudy + "/";
Console.WriteLine(Url);
CookieContainer cookies;
HttpWebResponse response;
HttpWebRequest req = (HttpWebRequest)System.Net.WebRequest.Create(Url);
req.Credentials = _NetworkCredential;
req.CookieContainer = new CookieContainer();
req.AllowAutoRedirect = true;
cookies = req.CookieContainer;
try
{
response = (HttpWebResponse)req.GetResponse();
if (response.StatusCode != HttpStatusCode.OK)
Console.WriteLine("URL NÃO RESPONDEU");
else
Console.WriteLine("URL OK");
using (response)
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string html = reader.ReadToEnd();
Regex regex = new Regex(GetDirectoryListingRegexForUrl(Url));
MatchCollection matches = regex.Matches(html);
if (matches.Count > 0)
{
foreach (Match match in matches)
{
if (match.Success)
{
Console.WriteLine(match.Groups["name"]);
}
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message, "Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Ich hoffe, dass Sie mir helfen können! Vielen Dank.
Vielen Dank, verschwendete ich viel Zeit, um die früheren regulären Ausdruck und es kehrte immer 1 Spiel. Der aktualisierte reguläre Ausdruck, der von Ihnen gegeben wurde, funktioniert großartig. –