C#计算一个文件夹的大小

private void Form1_Load(object sender, System.EventArgs e)
{
string A = FolderSize(@"C://").ToString();
this.label1.Text = A;
}
public static long FolderFileSize(string path)
{
long size = 0;
try
{
FileInfo [] files = (new DirectoryInfo(path)).GetFiles();
foreach(FileInfo file in files)
{
size += file.Length;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
return size;
}


public static long FolderSize(string path)
{
long Fsize = 0;
try
{
Fsize = FolderFileSize(path);
DirectoryInfo [] folders = (new DirectoryInfo(path)).GetDirectories();
foreach(DirectoryInfo folder in folders)
{

Fsize += FolderSize(folder.FullName);

}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
return Fsize;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS是一款常用的集成开发环境,它可以轻松地开发各种类型的应用程序,包括监视文件夹的存储空间大小。在VS中,可以使用.NET的FileSystemWatcher类来监视文件夹的变化,并且可以使用C#等编程语言来编写相关代码,具体步骤如下: 首先,需要在项目中添加引用System.IO,并创建FileSystemWatcher对象,并设置相关属性,例如要监视的文件夹路径、过滤器、是否包含子目录、通知类型等。这里以监视D:\test目录下所有文件的变化为例: ``` FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = @"D:\test"; watcher.Filter = "*.*"; watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.Size; ``` 其中,NotifyFilter属性指定了要监视的事件类型,这里设置为Size,表示只监视文件大小的变化。 接下来,需要实现文件变化事件处理方法(例如OnChanged、OnCreated等),并在该方法中获取文件夹的存储空间大小,并将其输出到控制台。为了避免频繁访问文件夹,可以使用Timer定时器控件来限制方法的调用频率。以下是一个简单的示例代码: ``` private static long lastSize = 0; private static Timer timer = new Timer(5000); // 设置定时器间隔为5秒 static void Main(string[] args) { watcher.Changed += OnChanged; watcher.Created += OnChanged; timer.Elapsed += OnTimerElapsed; timer.Start(); watcher.EnableRaisingEvents = true; } static void OnChanged(object sender, FileSystemEventArgs e) { Console.WriteLine($"文件{e.Name}的大小发生变化"); } static void OnTimerElapsed(object sender, ElapsedEventArgs e) { DirectoryInfo dir = new DirectoryInfo(watcher.Path); long size = dir.EnumerateFiles("*.*", SearchOption.AllDirectories).Sum(file => file.Length); if (size != lastSize) { Console.WriteLine($"当前文件夹大小为{size}字节"); lastSize = size; } } ``` 说明: - 上面代码中,使用了lastSize变量来记录上次获取到的文件夹大小,只有当文件夹大小发生变化时,才会输出到控制台。 - OnTimerElapsed方法中,使用DirectoryInfo和EnumerateFiles方法来获取文件夹下所有文件的大小,并使用Sum方法来计算大小。 - 为了避免直接调用OnTimerElapsed方法,而使用了Timer控件来定时触发OnTimerElapsed方法。 - 在Main方法中启用文件变化事件和定时器。 - 当文件夹大小发生变化时,OnChanged方法会被调用,输出一条提示信息。 总之,以上就是使用VS监视文件夹存储空间大小的简单实现方法,适用于各种文件管理系统和监控软件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值