Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с FTP

292
16 октября 2007 года
Matush
726 / / 14.01.2004
C#

При работе с FTP столкнулся с рядом проблем.
Предположим такую задачу: надо получить дерево каталогов/файлов по заданому адресу. Решаю эту задачу следующим способом:
Код:
[SIZE=2][/SIZE][SIZE=2][COLOR=#008080]FtpWebRequest[/COLOR][/SIZE][SIZE=2] request = ([/SIZE][SIZE=2][COLOR=#008080]FtpWebRequest[/COLOR][/SIZE][SIZE=2])[/SIZE][SIZE=2][COLOR=#008080]FtpWebRequest[/COLOR][/SIZE][SIZE=2].Create(ftpUrl);
request.Method = [/SIZE][SIZE=2][COLOR=#008080]WebRequestMethods[/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#008080]Ftp[/COLOR][/SIZE][SIZE=2].ListDirectory;
request.UsePassive = [/SIZE][SIZE=2][COLOR=#0000ff]false[/COLOR][/SIZE][SIZE=2];
[/SIZE][SIZE=2][COLOR=#008080]NetworkCredential[/COLOR][/SIZE][SIZE=2] mycred = [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#008080]NetworkCredential[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#800000]""[/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#800000]""[/COLOR][/SIZE][SIZE=2]);
request.Credentials = mycred;
[/SIZE][SIZE=2][COLOR=#008080]FtpWebResponse[/COLOR][/SIZE][SIZE=2] response;
[/SIZE][SIZE=2]response = ([/SIZE][SIZE=2][COLOR=#008080]FtpWebResponse[/COLOR][/SIZE][SIZE=2]) request.GetResponse();
// ...[/SIZE]
 
[SIZE=2]
[/SIZE]

Этот код получает список файлов/директорий.

Теперь вопросы:
1. Как мне определить является ли полученный результат файлом или директорией ? Если ответ - используй ListDirectoryDetail, то можно ли надеятся что результат на всеx ftp'хах будет одинаковый?
2. Для некоторых запросов (например ...Test[FONT=Courier New]/{####…}/someFile.txt[/FONT]), результат будет сам файл плюс перед ним название директории
3. Если работаем через прокси, результат получаем в HTML

Есть идеи?
292
23 октября 2007 года
Matush
726 / / 14.01.2004
Итого, после долгих мучений у меня остался один единственный вопрос:
Определить является урл директорией или файлом?
5
23 октября 2007 года
hardcase
4.5K / / 09.08.2005
А если у ФТП спросить размер объекта в урле?
Для каталогов, он кажется не определен....
292
24 октября 2007 года
Matush
726 / / 14.01.2004
Цитата: hardcase
А если у ФТП спросить размер объекта в урле?
Для каталогов, он кажется не определен....



Так и делал :) Но для некоторых файлови это обламывается. Но эти все проблемы были при использовании FtpWebRequest.
Я решил сделать все почеловечески, черезсокеты. Уже в помощи не нуждаюсь. Всем спасибо

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог