#c# #winscp #winscp-net
Вопрос:
Я пробовал ниже, но безуспешно —
string mask = "Report01|*[A-Z]" "*.txt"; //This line fails to select files which contains only digits
TransferOperationResult transferResu<
transferResult = session.getFiles("RemoteServerPath" mask,"DestinationServerPath",false,transferOptions);
Я пытаюсь исключить все отчеты, которые содержат буквы после цифр.
Ответ №1:
Это невозможно с использованием синтаксиса маски файла WinSCP.
Но вы можете легко:
- перебирать все файлы в каталоге (используя
Session.ListDirectory
илиSession.EnumerateRemoteFiles
) - у вас есть пользовательская логика выбора (например, с помощью
Regex.Match
); - и передавать выбранные файлы один за другим.
Что-то вроде этого:
var files = session.ListDirectory("/remote/path").Files;
files = files.Where(_ => Regex.Match(_.Name, "^[0-9] .txt$"));
foreach (var file in files)
{
session.GetFileToDirectory(file.FullName, @"C:localpath");
}
Комментарии:
1. Это сработало для меня. Спасибо, Мартин.