Lee*_*eeW 19 .net c# filesystems
我需要计算数百个文件夹的大小,有些将是10MB,有些可能是10GB,我需要一种使用C#获取每个文件夹大小的超快速方法.
我的最终结果有望成为:
Folder1 10.5GB
Folder2 230MB
Folder3 1.2GB
...
小智 34
添加对Microsoft Scripting Runtime的引用并使用:
Scripting.FileSystemObject fso = new Scripting.FileSystemObject();
Scripting.Folder folder = fso.GetFolder([folder path]);
Int64 dirSize = (Int64)folder.Size;
Run Code Online (Sandbox Code Playgroud)
如果你只需要大小,这比递归要快得多.
Bol*_*ait 13
好的,这太糟糕了,但......
使用名为dirsize.bat的递归dos批处理文件:
@ECHO OFF
IF %1x==x GOTO start
IF %1x==DODIRx GOTO dodir
SET CURDIR=%1
FOR /F "usebackq delims=" %%A IN (`%0 DODIR`) DO SET ANSWER=%%A %CURDIR%
ECHO %ANSWER%
GOTO end
:start
FOR /D %%D IN (*.*) DO CALL %0 "%%D"
GOTO end
:dodir
DIR /S/-C %CURDIR% | FIND "File(s)"
GOTO end
:end
Run Code Online (Sandbox Code Playgroud)
注意:第5行的最后一个"%% A"后面应该有一个制表符,而不是空格.
这是您正在寻找的数据.它会很快地完成数千个文件.事实上,它可以在不到2秒的时间内完成我的整个硬盘驱动器.
执行这样的文件dirsize | sort /R /+25,以便查看最先列出的最大目录.
祝好运.
| 归档时间: |
|
| 查看次数: |
13471 次 |
| 最近记录: |