Dados los archivos, ahora contamos los archivos según la extensión usando LINQ. Estamos considerando todos los tipos de formatos de archivo como pdf, txt, xml y vamos a contar estos archivos según la extensión. Para eso, tenemos que conocer los siguientes métodos:
- Path.GetExtension(): este método se utiliza para obtener una extensión de la ruta dada.
- TrimStart(): este método se usa para cortar la ruta y comienza con la string dada.
- ToLower(): este método se utiliza para convertir la string a inferior.
- GroupBy(): esta función se utiliza para agrupar los datos que comparten el atributo común de la secuencia o lista especificada.
- count(): este método se utiliza para obtener el número total de elementos de la secuencia dada.
Ejemplo:
Input: {myfile1.txt, myfile2.txt, myfile3.xml} Output: 3 file ---> txt 1 file ---> xml Input: {file12.txt, file23.xml, file45.pdf} Output: 1 file ---> txt 1 file ---> xml 1 file ---> pdf
Acercarse:
- Cree una lista de archivos con diferentes extensiones.
- Lea los archivos usando el método .GetExtension(). Luego convierta las extensiones de archivo a minúsculas para eliminar la distinción entre mayúsculas y minúsculas. Luego aplique la función de recorte antes de esto y use el método groupby para obtener las mismas extensiones de archivo en un grupo y luego use la función de conteo para contar las extensiones de archivo que ya están en el grupo.
var result = files.Select(f => Path.GetExtension(f) .TrimStart('.').ToLower()) .GroupBy(y => y, (ex, excnt) => new { Extension = ex, Count = excnt.Count() });
- Mostrar el número de archivos y la extensión usando el número de archivos
foreach (var i in result) { Console.WriteLine(i.Count + " File --> " + i.Extension + " format "); }
Ejemplo:
C#
// C# program to count the files according // to their extension using System; using System.IO; using System.Linq; class GFG{ public static void Main() { // Declare files with different extensions string[] files = { "171fa07058.txt", "171fa07058.pdf", "171fa07058.xml", "171fa07058.txt", "171fa07058.txt", "171fa07058.xml" }; // Group by files with an extension var result = files.Select(f => Path.GetExtension(f) .TrimStart('.').ToLower()) .GroupBy(y => y, (ex, excnt) => new { Extension = ex, Count = excnt.Count() }); // Display the final result foreach (var i in result) { Console.WriteLine(i.Count + " File --> " + i.Extension + " format "); } } }
Producción:
3 File --> txt format 1 File --> pdf format 2 File --> xml format
Publicación traducida automáticamente
Artículo escrito por 171fa07058 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA