我想在012文件名的string []
上應用一個過濾器,我從Directory.GetFiles()
獲得,而無需在OpenFileDialog中打開它。將文件過濾器應用到文件名的字符串[],而不打開OpenFileDialog
有沒有什麼辦法可以應用所有這些濾波器(即我通常將適用於打開文件對話框) e.g:
openFileDialog.Filter = "Bitmap Images (*.bmp)|*.bmp|" +
"JPEG Images (*.jpeg, *.jpg)|*.jpeg;*.jpg|" +
"PNG Images (*.png)|*.png|" + ...;
字符串[]。
我基本上想從FolderBrowserDialog中選擇文件夾,並從文件夾中選擇只有選定的文件 - 試圖找到某種方式來靜靜地執行此操作(將參數設置爲OpenFileDialog但不打開它)。
我只是嘗試以下操作:
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = folderdialog.SelectedPath; // here I get my folder path
openFileDialog.Filter = "Bitmap Images (*.bmp)|*.bmp|" +
"JPEG Images (*.jpeg, *.jpg)|*.jpeg;*.jpg|" +
"PNG Images (*.png)|*.png";
string [] fnms = openFileDialog.FileNames; // I wished this string arry to get poplulated with filtered file list - but doh! Obviously it didn't.
誰能幫我找到一個解決的辦法。 有什麼辦法可以靜默地調用OpenFiledDialog嗎?或者會有任何LINQ查詢這個問題或任何這樣的。 [我是一個新手 - 但學習者]
任何幫助將不勝感激。 在此先感謝
我必須承認,我更喜歡你的答案(並贊同它)。我的一個批評是,你應該在這個實例中使用'EnumerateFiles'而不是'GetFiles',因爲你需要IENumerable仍然是'where',儘管如果你在一個目錄中有10k +文件,那麼只需要返回正確的類型 – Sayse
謝謝。我們必須讀取所有文件名,所以使用EnumerateFiles不應該產生差異。延遲執行有助於讀取不需要的所有元素。 –
謝謝@UsmanZafar。您的解決方案適合我。 將您的解決方案標記爲答案,因爲它充分描述並使用'params string [] extensions'給我留下了深刻的印象。 再次感謝 – Bhramar