Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <summary>
        /// Получить файлы с сервера по маске - регулярному выражению
        /// </summary>
        public int GetFiles(string mask, string destDir, FtpListOption options)
        {
            SkipFilesDelegate skipFiles = name => !name.IsMatch(mask);

            return(GetFiles(skipFiles, destDir, options));
        }