Hej Hej jag vet inte riktigt vad du hade tänkt dig men för att veta vilka directories och filer som finns i en viss katalog så kan du göra ungefär så här Oj, HJÄLP! Hej du gör en helt vanlig HttpWebRequest mot den platsen. Jag har testat detta och det fungerar inte. Content-Length är inte med i headern och GetResponse är tom. Löste siggå igenom web direcotry
Med HttpWebRequest och HttpWebResponse kan man ju bla hämta filer från en webbserver.
Hur gör man för att iterera igenom en mapp på en webbserver som har enablat "directory browsing"?
/peterbladhSv: gå igenom web direcotry
<code>
string dirpath=Server.MapPath("MittDirectory");
DirectoryInfo dir=new DirectoryInfo(dirpath);//få tag på det "riktiga" directoriet
if(dir.Exists) //kolla om det verkligen existerar
{
DirectoryInfo[] dirs=dir.GetDirectories(); //alla subdirectories
FileInfo[] files=dir.GetFiles(); //alla filer
for(int i=0;i<files.Length;i++)
{
//Gör vad du vill med filerna...
}
}
</code>
FileInfo och DirectoryInfo finns i System.IO...
Jag tror inte ens att du behöver ha "Directory Browsing" enablat... Gjorde själv en generell sida som simulerade directory browsing men där jag hade mer kontroll på vad som hände plus att man kan ju ha egna ikoner etc...Sv: gå igenom web direcotry
jag var nog lite otydlig. Jag jobbar inte med en webbapplikation utan ett winforms projekt som skall ta en titt på ett webdirectory på en server.
Jag hittade precis "WebClient" som kan göra det jag vill på ett hyfsat sätt. Dock måste jag parsa massa html för att få ut filnamn, sökvägar osv. Finns det möjligtvis något "färdigt" för detta?
Hade även varit intressant att veta hur man gör det WebClient gör med HttpWebRequest/Response, som jag nämnde i första inlägget.
/peterbladhSv: gå igenom web direcotry
Upptäckte precis att WebClient INTE finns i Compact Framework (vilket jag jobbar med).
Tillbaka till ruta ett;
Hur gör jag för att få html'en som iis'en skickar när man surfar in på en mapp med directory browsing enablat??
/peter bladhSv: gå igenom web direcotry
Du får då tillbaka HTML, för att gå genom de olika directoryes (som presenteras med <A href""> så tror jag du själkv med ex RegularExpressions får plocka ut deras sökvägar och på så vid köra flera HttpWebRequests mot dessa tills du är nöjd. :-)
//Johan NSv: gå igenom web direcotry
Response Header:
Server: Microsoft-IIS/5.0\r\nDate: Wed, 17 Sep 2003 10:55:58 GMT\r\nX-Powered-By: ASP.NET\r\nTransfer-Encoding: chunked\r\nContent-Type: text/html\r\n\r\n
Kod:
string uri = "http://localhost/katalog";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
Stream stream = response.GetResponseStream();
osv...
Detta fungerar fint om det är en fil, men inte om det är en katalog (directory browsing är enablat).
Måste jag sätta nån speciell proterty på Request eller Response objekten?
/peterbladhSv: gå igenom web direcotry
Istället för
Stream stream = response.GetResponseStream();
Så använde jag
StreamReader stream = new StreamReader(response.GetResponseStream(), Encoding.ASCII);
Och kunde då köra
string str = stream.ReadToEnd();
:)