Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 1
Регистрация: 15.05.2013
Сообщений: 32
1

Получить размер всех файлов на FTP-сервере

04.04.2015, 10:28. Показов 2437. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
Для решения задачи использую метод
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public long GetFolders(string ftp)
        {
            List<string> answerList = new List<string>();
            FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(ftp); ;
 
            ftpRequest.Credentials = new NetworkCredential(userName, password);
            ftpRequest.Method = WebRequestMethods.Ftp.GetFileSize;
            ftpRequest.UsePassive = true;
            ftpRequest.Proxy = null;
            ftpRequest.UseBinary = true;
            ftpRequest.KeepAlive = true;
            FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
            long fullSize = response.ContentLength;
            return fullSize;
}
Но строчка (FtpWebResponse)ftpRequest.GetResponse(); выдаёт эксепшн "Запрашиваемый URL-адрес не допустим для этой команды FTP". Каким ещё способом я могу выполнить данную задачу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2015, 10:28
Ответы с готовыми решениями:

QT 5.7 + FTP - получить список файлов на сервере
Подскажите как получить список файлов на сервере ? Использую QNetworkAccessManager скачать и...

Загрузка всех файлов из заданной папки на FTP-сервере
Всем привет! Короче проблема такова: я хочу скачать все файлы из конкретной папки на FTP в туже...

Получить список файлов из заданной папки на FTP-сервере
Программа должна: 1)Подключаться к заданному FTP-серверу с указанным логином и паролем (сделано)...

Как получить список файлов на FTP-сервере с нужным расширением файла?
Есть такой код: Dim список_файлов As String() = Directory.GetFiles(путь_к_папке,...

1
1 / 1 / 2
Регистрация: 06.04.2015
Сообщений: 5
07.04.2015, 00:14 2
Если запрашиваемый фтп-сервер запрещает команду GetFileSize (кстати, проверьте адрес файла - действительно ли он верный??), как вариант, вы можете прочитать список всех файлов и распарсить значения размера файлов в импровизированной колонке (только учтите, что номер колонки с размером может быть различным на разных фтп серверах). В данном случае размер файла записан в колонке номер 3 (attr[2])

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
private static string GetFileList(string address)
        {
            var retry = RetryStrategy.GetDefaultStrategy();
            using (FtpWebResponse response = retry.Execute(() =>
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(address);
                request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                request.Credentials = new NetworkCredential(Settings.FtpUser, Settings.FtpPassword);
                request.UsePassive = true;
                request.KeepAlive = false;
                
                return (FtpWebResponse)request.GetResponse();
            })) 
            {
                using (Stream responseStream = response.GetResponseStream())
                using (StreamReader reader = new StreamReader(responseStream))
                {
                    return reader.ReadToEnd();
                }
            };
        }
 
        public FtpFile[] ListFolder(string address, string subfolder = "")
        {
            string folder = GetFileList(address);
 
            List<FtpFile> fileList = new List<FtpFile>();
            string[] files = folder.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string file in files)
            {
                string[] attr = file.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
                int size;
                if (attr[2] != "<DIR>" && int.TryParse(attr[2], out size))
                {
                    fileList.Add(new FtpFile
                    {
                        Name = attr[3],
                        Size = size,
                        Subfolder = subfolder
                    });
                }
            }
 
            return fileList.OrderByDescending(s => s.Name).ToArray();
        }
0
07.04.2015, 00:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2015, 00:14
Помогаю со студенческими работами здесь

Получить список всех файлов с FTP
Как получить список всех файлов с FTP? Использую код: idFTP1.List; for I := 2 to...

Получить список всех файлов (winsock, ftp, LIST)
Здравствуйте. Встала передо мной следующая задача. Мне нужно скачать все файлы с ftp. С ftp...

Получить размер всех найденных файлов
Всех приветствую. Есть поток: Sub GetFindSub(ByVal d As String, ByVal f As String) ...

Как получить названия всех файлов и папок находящийся на сервере
Необходимо создать функцию которая возвращает названия файлов и папок находящийся на родительском...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru