Я пытаюсь найти какое-то руководство или примеры класса DirectoryEnumerationFilters из AlphaFS, который используется в и как его можно использовать в Powershell.К сожалению, другие посты, в которых есть потенциальные ответы на мой вопрос, имеют устаревшие ссылки ...
Я пытаюсь перечислить все каталоги (а затем и файлы), которые соответствуют определенным критериям.В этом случае я пытаюсь получить все каталоги, кроме AppData (и его подкаталогов).Код ниже делает свою работу, но это может занять некоторое время, если есть много каталогов.Вместо того, чтобы выполнять фильтрацию в массиве, я хотел бы сделать это, пока каталоги перечислены.Вот код:
$Path = '' #insert the source path here
$items = @()
[array]$FileSystemEntryInfo = @()
$SearchPattern = "*"
$SearchOption = 'AllDirectories'
# Get all folders
write-host "Getting Child Folders"
$directories = @()
$options = [Alphaleonis.Win32.Filesystem.DirectoryEnumerationOptions]'Folders,SkipReparsePoints,Recursive, ContinueOnException'
$directories = [Alphaleonis.Win32.Filesystem.Directory]::EnumerateDirectories($Path,$SearchPattern,$options, [System.IO.SearchOption]::$SearchOption)
#the below loop is what takes a lot of time to run. Eliminating this portion by adding filtering to enumerating would speed things up a lot.
write-host "Directories Populated, now entering foreach loop to filter"
$items = Foreach ($directory in $directories) {
if ($directory.Contains("\AppData\")) { }
else {
$file
}
}
Я играл с DirectoryEnumerationFilters и дошел до такого:
[Alphaleonis.Win32.Filesystem.DirectoryEnumerationFilters]::new().RecursionFilter
Я не знаю, куда идти дальше.
Любая помощь будет принята с благодарностью.