Я использую следующий фрагмент кода, чтобы получить использование диска, начиная с определенного каталога:Есть ли более быстрый способ получить использование диска, начиная с определенного каталога в powershell?
$usage = (Get-ChildItem $webRoot -recurse | Measure-Object -property length -sum)
$diskUsage = $usage.sum
Проблема заключается в том, что это занимает очень много времени по сравнению с просто щелкнув правой кнопкой мыши папку в окнах и глядя на свойства.
Есть ли у нас доступ к функциям, которые использует исследователь для использования диска? Или есть другой способ, который будет быстрее, чем метод, который я использовал?
Я также не уверен, что произойдет, если есть круговые ссылки в области, которую выполняет мой PS-код. Я предполагаю, что он может запереться.
Странно, если ОС не может сделать свои быстрые вычисления доступными для powershell. – FrodoFraggins
Я не думаю, что ОС имеет более быстрый расчет. Единое значение для свободного пространства/используемое для всего диска постоянно обновляется с изменениями в файловой системе. Но представьте, если ОС попытается сохранить вкладку на эту информацию на всех уровнях файловой системы: скажем, вы меняете один файл в директории с 5 уровнями глубины - для этого потребуется 5 вычислений. ... Теперь экстраполируйте это на что-то вроде открытия Visual Studio - даже SSD не мог справиться с этим! :) – northben