Поиск всех файлов для регулярных выражений соответствующих файлов на сервере FTP в C # .NET - PullRequest
1 голос
/ 30 сентября 2010

Я создаю программу, в которой мне нужно найти FTP-сервер и загрузить все файлы, которые соответствуют заданному регулярному выражению. Как мне это сделать? Я могу подключиться к FTP-серверу, но как мне проверить все файлы по указанному пути на наличие файлов, соответствующих регулярному выражению?

Мне также нужно сделать то же самое для HTTP-серверов, что, на мой взгляд, будет существенно сложнее, но сейчас я буду придерживаться FTP-сервера.

Спасибо

Ответы [ 2 ]

3 голосов
/ 30 сентября 2010

Вы можете использовать это, чтобы получить список

public string[] GetFileList()
    {
        string[] downloadFiles;
        StringBuilder result = new StringBuilder();
        FtpWebRequest reqFTP;
        try
        {
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/"));
            reqFTP.UseBinary = true;
            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
            WebResponse response = reqFTP.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream());

            string line = reader.ReadLine();
            while (line != null)
            {
                result.Append(line);
                result.Append("\n");
                line = reader.ReadLine();
            }
            // to remove the trailing '\n'
            result.Remove(result.ToString().LastIndexOf('\n'), 1);
            reader.Close();
            response.Close();
            return result.ToString().Split('\n');
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message);
            downloadFiles = null;
            return downloadFiles;
        }
    }

и затем мапулируйте массив GetFileList с помощью регулярных выражений в соответствии с вашими потребностями

0 голосов
/ 30 сентября 2010

FTP имеет команду list (ls) - любая библиотека, которую вы используете, должна иметь соответствующий метод, он вернет список файлов в текущем каталоге.

Вы можете сравнивать с этим списком и получать только те файлы, которые соответствуют.

Не зная, какую именно библиотеку вы используете, получить более конкретную информацию сложно.

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