Diberikan jalur folder (seperti C:\Random Folder
), bagaimana saya dapat menemukan file di dalamnya yang memiliki ekstensi tertentu, seperti txt
? Saya berasumsi bahwa saya harus melakukan pencarian *.txt
di direktori, tetapi saya tidak yakin bagaimana saya harus memulai pencarian ini.
93
macos.txt
Anda dapat menggunakan kelas Direktori
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
sumber
Sebenarnya cukup mudah. Anda dapat menggunakan
System.IO.Directory
kelas bersama denganSystem.IO.Path
. Sesuatu seperti (menggunakan LINQ membuatnya lebih mudah):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));
Ada banyak variasi teknik ini juga, tentunya. Beberapa jawaban lain lebih sederhana jika filter Anda lebih sederhana. Yang ini memiliki keuntungan dari pencacahan yang tertunda (jika itu penting) dan penyaringan yang lebih fleksibel dengan mengorbankan lebih banyak kode.
sumber
Metode di bawah ini hanya mengembalikan file dengan ekstensi tertentu (misalnya: file dengan .txt tetapi tidak .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)); }
sumber
Sesuai pemahaman saya, ini dapat dilakukan dengan dua cara:
1) Anda dapat menggunakan Kelas Direktori dengan metode Getfiles dan melintasi semua file untuk memeriksa ekstensi yang kami butuhkan.
2) Anda dapat menggunakan Path Class dengan Metode GetExtension yang mengambil path file sebagai parameter dan memverifikasi ekstensi. Untuk mendapatkan path file, cukup memiliki kondisi perulangan yang akan mengambil satu file dan mengembalikan filepath yang dapat digunakan untuk verifikasi.
Catatan: Kedua logika harus berada di dalam kondisi perulangan.
sumber
Gunakan kode ini untuk membaca file dengan semua jenis file ekstensi.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");
sumber