2013-06-26 42 views
0

我想弄清楚如何讓用戶選擇一個目錄,而不僅僅是選擇文件。我不關心文件,只是目錄。有沒有辦法讓用戶這樣做?我想出的唯一方法是返回運行應用程序的機器上可用的驅動器列表。如何讓用戶選擇一個源目錄?

這不是我所需要的,因爲任何聯網的計算機都不顯示 - 只有實際爲的驅動器映射爲。我需要的只是讓用戶選擇一個源目錄並保存該服務器路徑(\\my-server-name\path\to\source),以便我運行的服務將在預定時間處理它。

我不確定我的代碼是否可以修改以顯示所有網絡計算機,或者是否已有方法/庫讓服務器上的用戶瀏覽器目錄,但我卡住了。有什麼辦法可以做到這一點?

return (from info in driveInfo 
    where info.DriveType == DriveType.Network 
    select new Drive 
    { 
     Name = info.Name, Type = info.DriveType, 
     RootDirectory = info.RootDirectory.Name, IsReady = info.IsReady, 
    }).ToList(); 

任何非C#的解決方案也能工作,只要它仍然可以整合好。不知道如果NodeJSHtml5Javascript可以做到這一點?

+0

這是什麼都與ASP.NET呢? – Dai

+0

這是一個ASP.NET應用程序,所以我認爲這是相關的。沒有? – Cody

+0

您想要一個ASP.NET應用程序瀏覽Web服務器可見的所有網絡計算機並將其顯示給最終用戶嗎? – Paparazzi

回答

0

這不是一個漂亮的解決方案 - 它遠非快速,但如果我正確地閱讀你的問題,這是你正在尋找(在VB.NET中完成)的線。

Dim fbd1 As New FolderBrowserDialog 
    Dim type As Type = FolderBrowserDialog1.GetType 
    Dim fieldInfo As Reflection.FieldInfo = type.GetField("rootFolder", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance) 
    fieldInfo.SetValue(fbd1, DirectCast(18, Environment.SpecialFolder)) 
    fbd1.ShowDialog() 

這將對話框FolderBrowserDialog與「網絡」作爲根文件夾。一旦您點擊網絡,它將展開以列出您可能查看的所有網絡設備。在我的電腦上,這很慢。

這是一個我在這裏找到一個稍微修改的方案 - http://www.codeproject.com/Articles/20547/How-to-Browse-Network-Folders-using-Folder-Dialog

相關問題