2014-11-14 67 views
1

我有一個OpenFileDialog,我只想允許.txt作爲用戶的有效文件。C#WPF - 只允許某些文件擴展名

我知道我可以一個Filter添加到OpenFileDialog像這樣:

var dialog = new OpenFileDialog(); 
dialog.DefaultExt = ".txt"; 
dialog.Filter = "Text Files (*.txt)|*.txt"; 
var result = dialog.ShowDialog(); 
// Do something with the result 

問題不過是,我還可以直接說,在OpenFileDialog"test.jpg",然後打開該上傳這個.JPG文件。 (顯然它後來出錯了,但現在並不重要。)我只想知道如何限制用戶只添加「.txt」文件,而不是其他任何內容? (通過直接驗證它在OpenFileDialog裏面,而不是在稍後的某個地方進行。)

+2

我不確定是否有辦法阻止用戶通過鍵入來更改擴展名,但是您可以在選擇文件後立即檢查擴展名,並在違規時報告錯誤。 – PoweredByOrange 2014-11-14 16:03:47

+0

我認爲你的選擇是在用戶選擇文件後檢查擴展名,或者編寫你自己的文件對話框。 – juharr 2014-11-14 16:04:40

+0

您是否希望用戶選擇除.txt以外的所有內容??? – daniele3004 2014-11-14 16:05:16

回答

3

你不能在OpenFileDialog中這樣做,即使你可能會有一個不好的限制。

使用*.txt例如有多個文件擴展名這裏面是純文本,*.bat或全部作弄文件擴展名*.cs*.js等..

你不應該限制用戶在什麼文件,他可以把在上面。

對於更復雜的文件類型,如果你的程序不能處理用戶傳遞的文件,你應該顯示一個錯誤,不會阻止用戶傳遞文件。

+0

好的,那麼我會堅持過濾器。現在,如果它的格式不正確,它不會對內容做任何事情,我只是想知道,如果注入了.bat或.exe之類的東西可能是有害的,並且希望通過限制用戶的內容來防止這些類型的文件可以放入。 – 2014-11-17 07:32:52