Asp.NET Tutorials
Home > Asp.Net开发 > 在C#中怎么获得一个目录的大小?

Hot archives

在C#中怎么获得一个目录的大小?

作者:靶子&msdn       出处:msdn
本方法来自以下文档,有问题多翻帮助 ;)
ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfsystemiodirectoryclasstopic.htm
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemiodirectoryclasstopic.htm

public static long DirSize(DirectoryInfo d)
{
 long Size = 0;
 // Add file sizes.
 FileInfo[] fis = d.GetFiles();
 foreach (FileInfo fi in fis)
 {
 Size += fi.Length;
 }
 // Add subdirectory sizes.
 DirectoryInfo[] dis = d.GetDirectories();
 foreach (DirectoryInfo di in dis)
 {
  Size += DirSize(di);
 }
 return(Size);
}

应用示例:

// The following example calculates the size of a directory
// and its subdirectories, if any, and displays the total size
// in bytes.

using System;
using System.IO;

public class ShowDirSize
{
 public static long DirSize(DirectoryInfo d)
 {
  long Size = 0;
  // Add file sizes.
  FileInfo[] fis = d.GetFiles();
  foreach (FileInfo fi in fis)
  {
   Size += fi.Length;
  }
  // Add subdirectory sizes.
  DirectoryInfo[] dis = d.GetDirectories();
  foreach (DirectoryInfo di in dis)
  {
   Size += DirSize(di);
  }
  return(Size);
  }
  public static void Main(string[] args)
  {
   if (args.Length != 1)
   {
    Console.WriteLine("You must provide a directory argument at the command line.");
   }
   else
   {
    DirectoryInfo d = new DirectoryInfo(args[0]);
    Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, DirSize(d));
   }
 }
}
 
 

Add by : Huobazi (2005-6-25:03:12)