Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 05.11.2013, 17:27   #1
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,728
По умолчанию Узнать размер файла на FTP

Здравствуйте. Имею такой код:
Код:
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(@"ftp://cdn-ttk-s2.deliverycache.com/ZARUBEGNiE.SERiALS/THE.WALKiNG.DEAD/Season.1/The.Walking.Dead.s01e06.avi");
req.Method = WebRequestMethods.Ftp.DownloadFile;
req.UsePassive = true;
req.Proxy = null;
req.UseBinary = true;
req.Credentials = new NetworkCredential("anonymous", "qwerty@mail.ru");
req.KeepAlive = true;
FtpWebResponse resp = (FtpWebResponse)req.GetResponse();
Int64 FullSize = resp.ContentLength;
MessageBox.Show(FullSize.ToString());
Но FullSize возвращает значение -1. И это именно на этом сервере. Если с других серверов, то размер возвращается нормальный. Но ТоталКоммандер как то определяет размер. Как быть?
Заранее Благодарен за ответ.

Последний раз редактировалось FaTaL; 05.11.2013 в 17:30.
FaTaL вне форума Ответить с цитированием
Старый 05.11.2013, 17:30   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

А если использовать req.Method =WebRequestMethods.Ftp.GetFileSize; вместо WebRequestMethods.Ftp.DownloadFile лучше не станет?
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 05.11.2013, 17:37   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,728
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
А если использовать req.Method =WebRequestMethods.Ftp.GetFileSize; вместо WebRequestMethods.Ftp.DownloadFile лучше не станет?
Нет. Выскакивает ошибка на строчке FtpWebResponse resp = (FtpWebResponse)req.GetResponse();
Текст ошибки: The remote server returned an error: (550) File unavailable (e.g., file not found, no access).
Хотя файл там точно есть и если его скачать, то всё нормально качается.
FaTaL вне форума Ответить с цитированием
Старый 05.11.2013, 19:26   #4
simples
Форумчанин
 
Регистрация: 03.10.2013
Сообщений: 142
По умолчанию

Вероятно удаленный сервер очень УМНЫЙ(антилич защита какая нить) и палит строку UserAgent и мб еще какие то поля. Надо запрос делать максимально похожим на обычный из браузера.
simples вне форума Ответить с цитированием
Старый 05.11.2013, 21:53   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
ТоталКоммандер как то определяет размер.
Может быть просто для определения размера он использует не команду SIZE а LIST (т.е. получая полную инфу о файле, я кста тоже у себя так делаю).
SIZE может быть тот сервер не поддерживает. Чтоб это узнать попробуй подключится к нему в том же тотале и набрать команду HELP, почитав какие команды FTP кушает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2013, 09:30   #6
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,728
По умолчанию

Вот что выдал тотал:
FaTaL вне форума Ответить с цитированием
Старый 06.11.2013, 09:42   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
ContentLength returns −1 if no data was returned
Файл точно скачался?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2013, 11:46   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,728
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Файл точно скачался?
100% скачался.
FaTaL вне форума Ответить с цитированием
Старый 06.11.2013, 11:52   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Ну я х.з. как дотнет работает. Если файл скачался, то это не финт сервера...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2013, 12:30   #10
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,728
По умолчанию

Самое главное на других публичных FTP серверах всё нормально возвращает размер, а именно на http://artvid.ru не хочет.
FaTaL вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать дату создания файла на ftp Koder-KH Работа с сетью в Delphi 0 30.11.2011 18:11
узнать размер файла Артэс Общие вопросы C/C++ 4 31.05.2010 14:30
Узнать размер файла более 4 гб Asteroid Работа с сетью в Delphi 6 30.11.2009 16:22
Как програмно узнать размер файла? Дима я Общие вопросы C/C++ 3 09.10.2009 21:37
Как узнать размер файла? photozaz Общие вопросы Delphi 4 01.08.2008 00:29