ruta read obtener mostrar manejo guardar from files eliminar directorios directorio copiar carpeta archivos archivo c# file directory alphabetical-sort

read - obtener ruta de carpeta c#



Cómo recuperar la lista de archivos en el directorio, ordenados por nombre (3)

Extendiendo lo que dijo @Thomas, si solo necesita los mejores archivos X, puede hacer esto:

int x = 10; var files = Directory.EnumerateFiles(folder) .OrderByDescending(filename => filename) .Take(x);

Estoy tratando de obtener una lista de todos los archivos en una carpeta de C #. Suficientemente fácil:

Directory.GetFiles(folder)

Pero necesito el resultado ordenado alfabéticamente al revés, ya que todos son números y necesito saber el número más alto en el directorio . Por supuesto, podría agarrarlos en un objeto de matriz / lista y luego hacer una ordenación, pero me preguntaba si hay algún filtro / parámetro en su lugar.

Todos ellos son nombrados con ceros iniciales. Me gusta:

00000000001.log 00000000002.log 00000000003.log 00000000004.log .. 00000463245.log 00000853221.log 00024323767.log

¿Cuál es la forma más fácil? No necesito obtener los otros archivos, solo el número "más grande / más reciente".


var files = from file in Directory.GetFiles(folder) orderby file descending select file; var biggest = files.First();

Si realmente está buscando el número más alto y esos archivos de registro se nombran como usted sugirió, ¿qué le parece?

Directory.GetFiles(folder).Length


var files = Directory.EnumerateFiles(folder) .OrderByDescending(filename => filename);

(El método EnumerateFiles es nuevo en .NET 4, aún puede usar GetFiles si está usando una versión anterior)

EDIT: en realidad no necesita ordenar los nombres de los archivos, si usa el método MaxBy definido en MoreLinq :

var lastFile = Directory.EnumerateFiles(folder).MaxBy(filename => filename);