Programa C# para estimar el tamaño de la carpeta

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *