2012-07-24 61 views
11

我已發佈 - How to use OpenFileDialog to select a folder?,我找不到正確的答案。 所以,我改變了我的問題。C# - 如何自定義OpenFileDialog來選擇多個文件夾和文件?

我想定製OpenFileDialog來選擇多個文件夾和文件。我試圖找到一個解決方案,並可以看到一些關於它的帖子。

從互聯網上,我找到了以下項目 - https://github.com/scottwis/OpenFileOrFolderDialog

但是,在使用這個時,我遇到了一個問題。它使用來自MFC的GetOpenFileName函數和OPENFILENAME結構。 和OPENFILENAME有名爲「templateID」的成員。 這是對話框模板的標識符。示例項目包含「res1.rc」文件,並且其中還包含模板對話框。

但我不知道如何將此文件附加到我的C#項目?

或者是否有任何其他完美的解決方案 - 「如何自定義OpenFileDialog選擇多個文件夾和文件?」?

回答

11

如果使用FileNames屬性而不是FileName屬性,則會獲得每個選定文件的字符串數組,您可以使用shift鍵選擇多個文件。像這樣:

private void button1_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog x = new OpenFileDialog(); 
    x.Multiselect = true; 
    x.ShowDialog(); 
    string[] result = x.FileNames; 

    foreach (string y in result) 
     MessageBox.Show(y, "Selected Item", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 

文件和文件夾,你需要使用CommonOpenFileDialog附帶WinAPI,特定類是here

+1

您需要將'OpenFileDialog'的'Multiselect'屬性設置爲'true'才能工作:) – 2012-07-24 09:38:52

+2

您忘記了「多個**文件夾**和文件」嗎?我也想選擇文件夾。 – Yun 2012-07-24 09:40:50

+0

我想你需要使用CommonOpenFileDialog來代替它,但它應該以同樣的方式工作,我會盡快更新我的答案 – JMK 2012-07-24 09:51:36

2

試試這個:

openFileDialog.Multiselect = true; 
+0

您忘記了「多個**文件夾**和文件」嗎?我也想選擇文件夾。 – Yun 2012-07-24 09:40:12

+0

應該適用於文件夾和文件。 – 2012-07-24 09:42:28

1

你可能無法得到一個內置的.NET控件那樣。當然,OpenFileDialog不能同時用作文件和文件夾瀏覽器。您有兩種選擇可以用於第三方工具,比如您發現的第二方工具,您可以自己控制。令人驚訝的是,您可能無法找到非常難以創建自己的控件的簡單版本。

+0

謝謝。你有任何建議的第三方工具? – Yun 2012-07-24 10:00:19

+0

我從來沒有用過......不需要......但看看這些鏈接.. http://www.ssware.com/fldrview.htm和http://www.codeproject。COM /條/ 44914 /選擇-文件或文件夾,來自該相同的對話框 – 2012-07-24 10:23:45

相關問題