Saya memiliki beberapa kode yang dimaksudkan untuk mendapatkan file di direktori, yang cukup sederhana
foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv", SearchOption.TopDirectoryOnly))
File-file tersebut dinamai sebagai berikut:
Totals.CSV142344
Totals.CSV142409
Totals.CSV142433
Totals.CSV142501
Totals.CSV142528
Masalah saya adalah tidak mengambil file terakhir.
Saya telah memperbaiki kode dengan meletakkan ini sebagai gantinya:
foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv*", SearchOption.TopDirectoryOnly))
Mengatakan dapatkan semua file yang berisi Totals dan .csv, dengan apa pun setelah .csv.
Yang tidak saya dapatkan adalah mengapa ia mendapat empat file teratas, tetapi bukan yang paling bawah.
Saya pikir tidak ada file yang akan diambil oleh kode asli?
Totals~n.csv
tidak lagi cocok dan Anda hanya bisa mendapatkan kecocokanTotal*
. Ketikdir /x tot*.*
untuk melihat nama pendek. Anda mendukungTotals.csv*
dan mungkin harus memfilter untuk menghilangkan kecocokan yang tidak disengaja.Jawaban:
Rupanya
GetFiles
mengikuti logika pencocokan pola seperti yang diterapkan di katakandir
perintah.MSDN
Ketika @GSerg menunjuk beberapa file Anda memiliki nama 8.3 yang cocok.
Coba ubah pola
Totals.csv*
untuk mencocokkan semua file.sumber