2011-11-08 277 views
0

我知道這不應該像我發現的那樣困難,但我可以在問題上使用一些幫助。我已經使用過,並且熟悉FileUpload控件,效果很好。從網絡瀏覽器打開本地文件夾瀏覽器

但現在我需要允許用戶選擇文件夾路徑而不選擇文件。基本上是一個文件夾位置,在本地硬盤上,我的代碼將讀取選定文件夾中的文件並對其進行處理。

我正在繪製一個完全空白,我的網頁搜索沒有給我我正在尋找的東西。

我最初使用Windows的FolderDialogBrowser控件開發了它,但它不會在Web服務器上運行,可能是安全問題,我無法更改它。

Public Class FolderBrowserDialogExampleForm 
Inherits Form 

Private folderBrowserDialog1 As FolderBrowserDialog 
Private openFileDialog1 As OpenFileDialog 

Private richTextBox1 As RichTextBox 

Private mainMenu1 As MainMenu 
Private fileMenuItem As MenuItem 
Private WithEvents folderMenuItem As MenuItem, _ 
        closeMenuItem As MenuItem, _ 
        openMenuItem As MenuItem 

Private openFileName As String, folderName As String 

Private fileOpened As Boolean = False 

是否有某種方法可以從Web瀏覽器打開本地計算機上的文件夾瀏覽器?除非有合理的解決方法,否則我不打算挽救上述代碼。

完整的錯誤消息:

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: BC30002: Type 'Form' is not defined. 

源錯誤:

Line 10: 
Line 11: Public Class FolderBrowserDialogExampleForm 
Line 12:  Inherits Form        ' this line errors 
Line 13: 
Line 14:  Private folderBrowserDialog1 As FolderBrowserDialog 

回答

1

有一個在HTML/JavaScript的平臺,沒有文件夾選擇的概念。即使你可以選擇一個,你也無法對文件夾路徑做任何事情。如果您使用像Silverlight,Flash或Java applet這樣的插件技術,它們可能具有文件夾選擇和閱讀功能。

+0

嗯,我不確定是否屬實。這是我最近找到的另一個解決方案。 http://www.codeproject.com/KB/aspnet/krullfilesytembrowsing.aspx和微軟在MSDN庫中有一個.... http://msdn.microsoft.com/en-us/library/system.windows.forms .folderbrowserdialog(v = VS.90).aspx我只是試圖解決我在服務器上的問題,而不必重新編寫代碼。 – htm11h

+0

如果您想要訪問服務器上的Web服務器*的文件夾結構*而不是客戶端,那麼第一個鏈接將很有幫助; Web應用程序無法訪問客戶端的文件系統。第二個鏈接是針對Windows窗體的;並非所有的WinForms控件都有WebForms等效項。 – Jacob

+0

我的問題確切。但是,除了FileUpload控件之外,您還告訴我,沒有辦法從Web Bowser中查看本地文件夾路徑?爲什麼它可以在我的DEV PC上運行,而不管Web服務器和本地PC是否在同一個環境中,環境仍然是Web瀏覽器,對吧? – htm11h

1

您使用的代碼是用於Windows窗體,所以它不能在Web項目中工作。這是錯誤信息告訴你的。

如果你想讓用戶在他們的機器上選擇一個目錄,那麼標準的文件上傳控制就可以實現。

如果您希望用戶在WEB服務器計算機上選擇一個目錄,那麼您需要收集他們可以從中選擇的文件夾列表,並將它們呈現在樹或其他有用的界面構造中爲你想要執行的任務。

+0

我希望只讓用戶在本地機器上選擇一個文件夾,而不必選擇文件。 – htm11h

+1

啊,我看到你的問題。不幸的是,這並不適用於直接HTML,即使您設法弄清楚了,由於安全考慮,您將無法對該路徑中的文件執行任何操作。如果您知道用戶羣(即,它不是一般類型的應用程序),則可以在ClickOnce應用程序中重新使用當前的表單實現。或者,您可以基於當前的代碼鬆散地創建Silverlight小程序。 –