Mam kod, który ma na celu uzyskanie plików w katalogu, co jest dość proste
foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv", SearchOption.TopDirectoryOnly))
Pliki mają następujące nazwy:
Totals.CSV142344
Totals.CSV142409
Totals.CSV142433
Totals.CSV142501
Totals.CSV142528
Mój problem polega na tym, że nie pobiera ostatniego pliku.
Naprawiłem kod, umieszczając to zamiast tego:
foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv*", SearchOption.TopDirectoryOnly))
Mówiąc, otrzymaj wszystkie pliki, które zawierają zarówno Totals, jak i .csv, z dowolnymi plikami po .csv.
Nie rozumiem, dlaczego ma cztery najlepsze pliki, ale nie dolne.
Myślałem, że żaden z plików nie zostanie pobrany przez oryginalny kod?
Totals~n.csv
już nie pasuje i możesz tylko dopasowaćTotal*
. Wpisz,dir /x tot*.*
aby zobaczyć krótkie nazwy. FaworyzujeszTotals.csv*
i być może będziesz musiał filtrować, aby wyeliminować przypadkowe mecze.Odpowiedzi:
Najwyraźniej
GetFiles
przestrzega logiki dopasowywania wzorca, ponieważ jest implementowana w powiedzmydir
poleceniu.MSDN
Jak wskazał @GSerg, niektóre z twoich plików mają pasującą nazwę 8.3.
Spróbuj zmienić wzór,
Totals.csv*
aby dopasować wszystkie pliki.źródło