Как использовать DirectoryEnumerationFilters? - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь создать небольшой скрипт резервного копирования в PowerShell, но у нас есть несколько длинных имен файлов и глубоких папок, так что это слишком много для get-childitems.Вот почему я пытаюсь использовать AlphaFS.

Я хочу использовать следующее, но вместо "*" есть перегрузка, когда я могу использовать DirectoryEnumerationFilters, но я не понимаю, как я могу их использовать.с помощью searchPattern я могу искать только одно расширение файла.

Directory.EnumerateFileSystemEntries("D:\\Games", "*",
    System.IO.SearchOption.AllDirectories);

Я хотел бы получить только файлы * .log и * .htm в этом примере.

public static IEnumerable<string> EnumerateFileSystemEntries(string path,
    DirectoryEnumerationOptions options, DirectoryEnumerationFilters filters);

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Использовали другой подход:

if($job.Unterverzeichnisse -eq $true){ $SearchOption = "AllDirectories" }
else { $SearchOption = "TopDirectoryOnly" }

$AlphaFSDir::EnumerateFileSystemEntries($job.Pfade.Quelle, $SearchPattern, [System.IO.SearchOption]::$SearchOption) | % {
...
$FileName = $_
    if (($job.includes.include | % { $FileName -like $_}) -eq $true){
    ...
    }
}

$job.includes.include содержит расширение, которое я хочу использовать для этой работы.Каждое задание имеет свои собственные расширения - например,

  1. job_1 = html
  2. job_2 = csv, xls, xlsm
0 голосов
/ 18 июня 2018

У них есть некоторый пример кода в https://github.com/alphaleonis/AlphaFS.

C # пример

Пример PowerShell

ps Возможно, вам следуетдобавьте "AlphaFS" к заголовку.

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