/// <summary> /// Получение файлов с проверкой имени делегатом пропуска файлов и делегатом получения пути-назначения файла /// </summary> public int GetFiles(SkipFilesDelegate skipFiles, DestinationDirectoryFilesDelegate destDir, FtpListOption options) { int count = 0; if (ftpClient.IsConnected) { FtpListItem[] items = ftpClient.GetListing(Path.AltDirectorySeparatorChar + WorkDir, options); foreach (FtpListItem itemData in items) { if (!skipFiles(itemData.FullName)) { string outDirectory = destDir(itemData.Name); if (!Directory.Exists(outDirectory)) { Directory.CreateDirectory(outDirectory); } GetFile(itemData.FullName, Path.Combine(outDirectory, itemData.Name)); count++; } } } return(count); }
/// <summary> /// Получение файлов с проверкой имени делегатом пропуска файлов /// </summary> public int GetFiles(SkipFilesDelegate skipFiles, string destDir, FtpListOption options) { int count = 0; if (ftpClient.IsConnected) { FtpListItem[] items = GetFtpItemsList(Path.AltDirectorySeparatorChar + WorkDir, options); foreach (FtpListItem itemData in items) { if (!skipFiles(itemData.Name)) { string path = itemData.FullName.Replace(WorkDir, string.Empty).Trim('/').Replace('/', Path.DirectorySeparatorChar); GetFile(itemData.FullName, Path.Combine(destDir, path)); count++; } } } return(count); }
/// <summary> /// Получить файлы с сервера по маске - регулярному выражению /// </summary> public int GetFiles(string mask, string destDir, FtpListOption options) { SkipFilesDelegate skipFiles = name => !name.IsMatch(mask); return(GetFiles(skipFiles, destDir, options)); }