Tengo un código destinado a obtener archivos en un directorio, que es lo suficientemente simple
foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv", SearchOption.TopDirectoryOnly))
Los archivos se nombran de la siguiente manera:
Totals.CSV142344
Totals.CSV142409
Totals.CSV142433
Totals.CSV142501
Totals.CSV142528
Mi problema es que no está recogiendo el último archivo.
He arreglado el código al poner esto en su lugar:
foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv*", SearchOption.TopDirectoryOnly))
Diciendo obtener cualquier archivo que contenga Totales y .csv, con cualquier cosa después de .csv.
Lo que no entiendo es por qué obtuvo los cuatro archivos principales, pero no el inferior.
¿Pensé que ninguno de los archivos sería recogido por el código original?
Totals~n.csv
ya no se ajusta y solo puedes obtener una coincidenciaTotal*
. Escribadir /x tot*.*
para ver nombres cortos. Usted favoreceTotals.csv*
y puede que tenga que filtrar para eliminar coincidencias accidentales.Respuestas:
Aparentemente se
GetFiles
adhiere a la lógica de coincidencia de patrones, ya que se implementa en decir eldir
comando.MSDN
Como @GSerg señaló, algunos de sus archivos tienen un nombre 8.3 coincidente.
Intente cambiar el patrón para
Totals.csv*
que coincida con todos los archivos.fuente