給定一個文件夾路徑(如C:\ Random Folder),如何在其中找到包含特定擴展名的文件(如txt)?我假設我必須在目錄中搜索* .txt,但我不確定我是如何開始搜索的。在文件夾中找到一個具有特定擴展名的文件
回答
看看System.IO.Directory
類和靜態方法GetFiles
。它有一個接受路徑和搜索模式的重載。例如:
string[] files = System.IO.Directory.GetFiles(path, "*.txt");
您可以使用Directory類
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
如果擴展名應該像txt_或其他名稱所述文檔https://msdn.microsoft.com/en-us/library/wz42302f(v=vs.110).aspx – 2015-02-24 12:50:26
這是很容易,其實。您可以將System.IO.Directory
課程與System.IO.Path
結合使用。像(使用LINQ使它更容易):
var allFilenames = Directory.EnumerateFiles(path).Select(p => Path.GetFileName(p));
// Get all filenames that have a .txt extension, excluding the extension
var candidates = allFilenames.Where(fn => Path.GetExtension(fn) == ".txt")
.Select(fn => Path.GetFileNameWithoutExtension(fn));
當然,這種技術也有很多變化。如果您的過濾器更簡單,其他一些答案更簡單。這個優點是枚舉延遲(如果有的話)和更靈活的過濾,代價更大。
感謝您爲此付出的所有額外工作。但是,我只是想要一個簡單的聲明,因爲我在目錄中只有一個文本文件(它是由我的程序提取的)。 – DMan 2010-06-30 18:29:41
下方回報的方法只有用特定擴展名的文件(例如:文件,以txt但不.txt1):
public static IEnumerable<string> GetFilesByExtension(string directoryPath, string extension, SearchOption searchOption)
{
return
Directory.EnumerateFiles(directoryPath, "*" + extension, searchOption)
.Where(x => string.Equals(Path.GetExtension(x), extension, StringComparison.InvariantCultureIgnoreCase));
}
按我的理解,這可以通過兩種方式來完成1)您可以使用帶有Getfiles方法的Directory Class並遍歷所有文件來檢查我們需要的擴展名。
Directory.GetFiles( 「your_folder_path)[I]。載(」 *。TXT「)
2)可以使用與GetExtension方法Path類這需要文件路徑作爲參數,並驗證該extension.To獲取文件路徑,只是有一個循環的條件,將獲取一個單獨的文件,並返回一個可用於驗證的文件路徑。
Path.GetExtension(your_file_path).Equals(「JSON」 )
注意:兩個邏輯都必須在循環條件之內。
使用此代碼讀取具有所有類型擴展名文件的文件。
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");
- 1. 掃描一個文件夾+子文件夾+在PowerShell中獲取具有特定擴展名的文件
- 2. 如何刪除文件夾中具有特定擴展名的所有文件?
- 3. 移動具有特定文件名和擴展名的文件
- 4. 在MATLAB中查找並打開一個具有特定擴展名的文件
- 5. 遞歸刪除具有特定擴展名的文件夾
- 6. 將具有特定擴展名的文件鏈接到linux中的另一個文件夾中
- 7. 運動具有一定的擴展名的文件到另一個文件夾與一個bat文件
- 8. MATLAB:如何將具有特定擴展名的文件複製到文件夾上的一個目錄中?
- 9. 遞歸地查找具有特定擴展名的文件
- 10. 遞歸查找具有特定擴展名的文件
- 11. 在單個調用中列出在Windows文件夾中具有特定擴展名的所有文件
- 12. 確定具有特定文件擴展名的文件是否不在使用PowerShell的文件夾中
- 13. 將具有特定擴展名的所有文件的名稱存儲在字符串中的文件夾中?
- 14. Perl:從特定文件夾中選擇具有特定擴展名的不同文件名
- 15. 將具有特定擴展名的文件移動到目錄
- 16. 在Unix中查找具有特定擴展名的所有文件?
- 17. Python:獲取包含特定文件擴展名的文件夾
- 18. 將文件從USB自動複製到具有特定擴展名的特定文件夾
- 19. 複製具有特定擴展名的文件名的位置
- 20. 在Firefox中打開一個具有特定擴展名的文件
- 21. 如何在文件中打開具有特定擴展名的文件對話
- 22. 在文件夾中搜索具有已知擴展名的未知文件名
- 23. 如何找到所有獨特的文件擴展名在Java中找到文件夾層次結構
- 24. 將具有特定擴展名的所有文件複製到另一個目錄,同時更改擴展名
- 25. 正則表達式的文件夾名稱來搜索具有特定文件擴展名的文件
- 26. 使用BASH重命名具有特定擴展名的文件夾
- 27. 如何遍歷zip文件中的子文件夾並解壓縮具有特定擴展名的文件?
- 28. 找到指定的文件名的文件擴展名
- 29. 如何在Android上查找所有具有特定擴展名的文件?
- 30. 循環遍歷所有具有特定擴展名的文件
謝謝!所有的答案都很好,但是你先回答了這個問題......是的:) – DMan 2010-06-30 18:37:34
如果擴展名會像txt_一樣,這不起作用。我試圖確定文件夾中是否有* .exe文件,並且我只有一個* .exe_文件,但查詢返回它,這是不正確的。 – Adrian 2013-01-25 11:20:59
該文檔:https://msdn.microsoft.com/en-us/library/8he88b63(v=vs.110).aspx – 2015-02-24 12:51:26