微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中的文件大小监视

我在系统和pipe理团队工作,并被赋予创build配额pipe理应用程序的任务,以尝试和鼓励用户更好地pipe理资源,因为我们目前存在磁盘空间问题,不执行硬配额。

目前,我正在使用下面的代码遍历用户主空间中的所有文件,以检索它们正在使用的总空间量。 从我看到的其他方面来说,在C#中没有其他方式来做到这一点,与它的问题是他们相当高的开销,而它退缩每个文件的大小,然后创build一个总计。

try { long dirsize = 0; FileInfo[] FI = new DirectoryInfo("I:\").GetFiles("*.*",SearchOption.AllDirectories); foreach (FileInfo F1 in FI) { dirsize += F1.Length; } return dirsize; }

所以我正在寻找一个更快的方法来做到这一点,或者一个快速方法来监视文件大小的变化,同时使用通过FileSystemWatcher可用的选项。 目前我唯一能想到的是创build一个包含每个文件文件位置和大小的散列表,所以当发生大小更改事件时,我可以比较旧大小和新大小,并更新总大小。

任何build议将不胜感激。

golang os * File.Readdir在所有文件上使用lstat。 可以优化吗?

如何在FreeBSD系统中增加MAX_PATH_LENGTH?

有没有像USN日记Linux文件系统?

Windows兼容的文件系统的文件时间分辨率

无法在Windows 10 PC上使用Java Open Dialog在IDE中查看联网驱动器,但在IDE之外查看

如何在Linux中以编程方式获取磁盘名称(如“/ dev / sda”或“/ dev / sdb”)?

令人难以置信的奇怪的文件创build时间问题

dentry和i-node的数量

使用Linux恢复Windows Spanned disks(LDM)?

是否ftruncate()复制数据,如果我截断到比原来更大的尺寸?

就试图编写自己的管理系统而言,位置和大小表并不是一个坏主意。 也许包含一些xmlserialization和LINQ到XML报告等我认为你已经在正确的道路上决定使用FileSystemWatcher

我同意大卫,使用FileSystemWatcher意味着你将只需要计算目录的变化。

当目录内容改变时,只需要改变已经改变的内容就可以了。

使用Changed事件。

你知道你可以通过Windows在NTFS卷上执行配额吗? 当操作系统本身支持这个时,为什么要自己推出?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐