Посчитать размер десятков миллионов папок (dfs)
Привет!
Есть необходимость эпизодически делать отчет по месту на файловых шарах - ACL и размер.
ACL проблем не вызывает, а посчитать размер папки с миллионами вложений - сложнее.
Использую powershell
Get-ChildItem не подходит - медленно
В итоге нашел два решения
1) .net (надежно, медленно)
([System.IO.DirectoryInfo] $_).EnumerateFile('*', 'AllDirectories') | ForEach-Object {$totalSize = $totalSize + $_.Length;}
2) COM - довольно стремно, быстрее иногда в разы
$com = New-Object -comobject Scripting.FileSystemObject
$folder_info = $com.GetFolder($_)
totalSize = $folder_info.size
Рылся по инету месяцами - ничего более не нашел
Есть у кого какие мысли?