2010-06-17 47 views
1

如何獲取網上文件夾的目錄列表?我正在尋找從網上的文件夾下載一組小文件。我可以使用單個文件輕鬆完成,但我不確定如何爲多個文件執行此操作。如果有類似於下面的代碼的東西,但對於網絡上的文件夾,我想我可以做到。如何獲取網上文件夾的目錄列表?

private void button1_Click(object sender, EventArgs e) 
    { 
     DirectoryInfo di = new DirectoryInfo("c:/myFolder"); 
     FileInfo[] rgFiles = di.GetFiles("*.*"); 
     foreach (FileInfo fi in rgFiles) 
     { 
      //Do Something with each of them 
     } 
    } 

該文件夾只是一個從我的網站。例如mysite.com/files

感謝

+0

當2個或更多人爲您的最終解決方案做出貢獻時,您可以獲得答案。而硬幣折騰去... – JimDel 2010-06-17 20:12:44

回答

3

正常的HTTP不提供任何機制來做到這一點。即使您在服務器上啓用了目錄瀏覽功能,並且未指定默認文檔,但所做的只是告訴Web服務器使用HTML生成文件列表。你不得不解析HTML,它會因服務器而異。

有坐像WebDAV的提供這種功能HTTP之上的其他協議,但它是相當複雜的。 FTP(或約旦提到的UNC共享)可能是一個更簡單的選項,如果你有控制服務器端的話。

+0

感謝信息喬希。我只需要將它們壓縮起來,下載一個文件,然後解壓縮它們。聽起來更容易。 – JimDel 2010-06-17 20:06:24

3

如果這是你自己的服務器,你將不得不與像新DirectoryInfo的UNC路徑連接到它(「\上\驅動MYSERVER \共享\路徑\」)

如果不是你的服務器,那麼你不能做到這一點,因爲這將是一個巨大的安全隱患。問題需要更多的澄清你想要做什麼。

+0

我會從我自己的網站獲取文件。例如他們可以在www.mysite.com/files。 – JimDel 2010-06-17 18:09:59

+0

好的,你所擁有的代碼應該可以工作,你只需要找到正確的路徑。如果上面的代碼在同一臺服務器上運行,則可以執行Server.MapPath()或像上面那樣使用完整代碼。 – Jordan 2010-06-17 18:35:43

1

按照其他選項,如果服務器是不是你自己的。那麼除非他們專門提供了這樣的服務,否則你不能這樣做。

如果是你自己的,你的應用程序的本地機器的一部分,然後繼續和使用的DirectoryInfo和FileInfo的方法,你在上面顯示。只需注意IIS(可能?)應用程序池用戶的安全需求。

如果這是你自己的,但遙控器,那麼你可以編寫一個Web服務,它提供了很好的格式的文件列表,爲您的其他服務器/客戶機上消費。顯然要注意安全。

相關問題