AlphaFS: как использовать DirectoryEnumerationFilters в PowerShell - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь найти какое-то руководство или примеры класса 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

Я не знаю, куда идти дальше.

Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...