El tamaño de la carpeta es la suma del tamaño de los archivos y subcarpetas incluidos en la carpeta. Aquí, aprenderemos a calcular el tamaño de cualquier directorio usando C#. Para calcular el tamaño de la carpeta utilizamos los siguientes métodos:
- DirectoryInfo(dir_path): toma una ruta de directorio como argumento y devuelve información sobre sus archivos y subdirectorios.
- GetFiles(): este método devuelve los nombres de todos los archivos de un solo directorio.
- GetDirectories(): este método devuelve todas las subcarpetas o subdirectorios de un único directorio.
- Longitud: Calcula el tamaño del archivo actual en bytes.
Acercarse:
1. Cree un método que se use para encontrar el tamaño estimado del archivo. En este método:
Obtenga todos los archivos en el directorio actual usando
FileInfo[] allFiles = folder.GetFiles();
Recorra todos y cada uno de los archivos presentes en la carpeta dada para calcular su longitud.
foreach (FileInfo file in allFiles) totalSizeOfDir += file.Length;
Si se encuentra un subdirectorio, obténgalo.
DirectoryInfo[] subfolders = folder.GetDirectories();
Ahora calcule el tamaño de cada subdirectorio recursivamente.
foreach (DirectoryInfo dir in subfolders) totalSizeOfDir = folderSize(dir);
2. En el método principal, primero obtenemos la información del directorio y luego llamamos al método folderSize para encontrar el tamaño estimado de la carpeta especificada y mostrar el resultado.
Ejemplo:
C#
// C# program to find the estimate size of the folder using System; using System.IO; class GFG{ // Driver code static public void Main() { // Get the directory information using directoryInfo() method DirectoryInfo folder = new DirectoryInfo("D://d2c articles"); // Calling a folderSize() method long totalFolderSize = folderSize(folder); Console.WriteLine("Total folder size in bytes: " + totalFolderSize); } // Function to calculate the size of the folder static long folderSize(DirectoryInfo folder) { long totalSizeOfDir = 0; // Get all files into the directory FileInfo[] allFiles = folder.GetFiles(); // Loop through every file and get size of it foreach (FileInfo file in allFiles) { totalSizeOfDir += file.Length; } // Find all subdirectories DirectoryInfo[] subFolders = folder.GetDirectories(); // Loop through every subdirectory and get size of each foreach (DirectoryInfo dir in subFolders) { totalSizeOfDir += folderSize(dir); } // Return the total size of folder return totalSizeOfDir; } }
Producción:
Total folder size in bytes: 860474
Publicación traducida automáticamente
Artículo escrito por shubhamvora05 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA