📜  估计文件夹大小的 C# 程序

📅  最后修改于: 2022-05-13 01:54:41.039000             🧑  作者: Mango

估计文件夹大小的 C# 程序

文件夹的大小是文件夹中包含的文件和子文件夹大小的总和。在这里,我们将学习使用 C# 计算任何目录的大小。要计算文件夹的大小,我们使用以下方法:

  • DirectoryInfo(dir_path):它将目录路径作为参数,并返回有关其文件和子目录的信息。
  • GetFiles():此方法返回单个目录的所有文件的名称。
  • GetDirectories():此方法返回单个目录的所有子文件夹或子目录。
  • 长度:它以字节为单位计算当前文件的大小。

方法:

1.创建一个用于查找文件估计大小的方法。在这种方法中:

使用获取当前目录中的所有文件

FileInfo[] allFiles = folder.GetFiles();

遍历给定文件夹中存在的每个文件以计算它们的长度。

foreach (FileInfo file in allFiles)
totalSizeOfDir += file.Length;

如果找到子目录,请获取它。

DirectoryInfo[] subfolders = folder.GetDirectories();

现在递归计算每个子目录的大小。

foreach (DirectoryInfo dir in subfolders)
         totalSizeOfDir = folderSize(dir);

2.在main方法中,我们首先获取目录信息,然后调用folderSize方法来查找指定文件夹的估计大小并显示输出。

例子:

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;
}
}


输出:

Total folder size in bytes: 860474