我如何使用 C# 獲取以位元組數為單位的人類可讀的檔案大小?


C# 提供了一種獲取目錄的方法 Directory.GetDirectories

Directory.GetDirectories 返回與指定目錄中指定的搜尋模式匹配的子目錄的名稱(包括其路徑),並可選擇搜尋子目錄。

C# 提供了一種獲取檔案的方法 Directory.GetFiles

Directory.GetFiles 返回所有與指定搜尋模式匹配的檔案的名稱(包括其路徑),並可選擇搜尋子目錄

C# 提供了一個 Length 屬性來獲取檔案長度

示例

static void Main(string[] args) {
   string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
   var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories);

   foreach (string file in files) {
      long size = new FileInfo(file).Length / 1024;
      string humanKBSize = string.Format("{0} KB", size);
      string humanMBSize = string.Format("{0} MB", size / 1024);
      string humanGBSize = string.Format("{0} GB", size / 1024 / 1024);
      Console.WriteLine($"KB:{humanKBSize} MB:{humanMBSize} GB:{humanGBSize}");
   }
   Console.ReadLine();
}

輸出

file C:\Users\Koushik\Desktop\TestFolder\Topdirectory.txt 22 KB 0 MB 0 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain\TestFolderMain.txt 0 KB 2 MB 0 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain1\TestFolderMain1.txt 0 KB 0 MB 1 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain1.txt 0 KB 0 MB 1 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain2.txt 0 KB 0 MB 1 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMainSubDirectory\TestFolderSubDirectory.txt 0 KB 0 MB 1 GB

更新於: 25-11-2020

393 次瀏覽

啟動你的職業

透過完成課程獲得認證

開始吧
廣告