Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/46: Рейтинг темы: голосов - 46, средняя оценка - 4.89
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696

Копирование по FTP

31.12.2009, 16:28. Показов 9809. Ответов 16

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста.
На narod.ru есть аккаунт, мне нужно сделать приложение, которое через FTP будет брать оттуда html-страницу, помешать ее код в текстовое поле. Потом текст меняется пользователем и страницу на сервере нужно заменить на новые данные.
Подскажите какими классами и методами пользоваться. Мне интересно как получать содержимое страницы с сервера, получать ее код, и записать в файл новые данные.
От примеров не откажусь.
P.S. - всех с наступающим Новым годом!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.12.2009, 16:28
Ответы с готовыми решениями:

Копирование папки на ftp с сохранением структуры
доброго вечера всем. я пишу маленькую программку которая бы позволяла копировать на ftp ресурс папку целиком с ее содержимым и создавать...

Копирование по FTP
Доброго времени суток. Есть код: @echo off ::Задаем параметры подключения set host= set user= set password= set...

Копирование с FTP на шару
Приветствую! Необходимо написать батник. Суть такова, есть FTP сервер, на него ежедневно закидываются заархивированные файлы с данными по...

16
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
31.12.2009, 16:44
http://msdn.microsoft.com/ru-r... quest.aspx
правда, там пример загрузки файла через WebClient - не знаю, что за зверь. а вот с FtpWebRequest, думаю, разобраться не сложно будет
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
31.12.2009, 17:26  [ТС]
Спасибо! Мне хотелось не мусорить файлами.
0
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
31.12.2009, 17:55
ну так что вышло-то?
у меня как-то так:
C#
1
2
3
4
5
6
7
8
9
10
        private void button3_Click(object sender, EventArgs e)
        {
            FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create("ftp://<логин>:<пароль>@ftp.narod.ru/<имя_файла>");
 
            ftp.Method = WebRequestMethods.Ftp.DownloadFile;
            
            StreamReader reader = new StreamReader(ftp.GetResponse().GetResponseStream(), Encoding.Default);
 
            textBox1.Text = reader.ReadToEnd();
        }
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
31.12.2009, 18:03  [ТС]
Спасибо! А я пытался использовать WebClient.
А можно как-то определить какая кодировка у файла?
0
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
31.12.2009, 18:14
вот тут сложнее..
я пока решения не нашёл
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
31.12.2009, 22:26  [ТС]
И у меня не получается
0
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
31.12.2009, 23:27
мысли вслух:
даже веб-браузер, по сути, не определяет кодировку файла по содержимому: в какой кодировке отобразить ту или иную страницу, он узнаёт из http-заголовка "Content-Type" (или его эквивалента в meta-тегах страницы)
в ftp я заголовков не обнаружил, так что, наверное, остаётся только вручную поискать в странице что-то вроде:
HTML5
1
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
и надеяться на авось, если поиски неудачны
или я не прав?
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
01.01.2010, 00:14  [ТС]
Хотелось бы и в обычных текстовых документах определять.
А TotalCommander же как-то определяет.
0
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
01.01.2010, 00:40
тотал скорее всего определяет по содержимому - у него довольно мощный инструмент просмотра
utf-8, например, можно сразу определить - первые три байта будут: 0xEF, 0xBB, 0xBF (хотя, как пишет википедия, и это необязательно..)
но это уже тема для нового топика, и не на одну страницу

Добавлено через 11 минут
также налицо чередование "больших" (>0x80) байтов с байтами 0xD0 и 0xD1 (для русского текста в utf-8)

хотя, вполне возможно, что всё, описаное выше, - мартышкин труд и есть на свете библиотеки, умеющие определить кодировку текстового документа по содержимому
уверен, что есть
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
01.01.2010, 03:52  [ТС]
Знать бы только какая это библиотека...

Добавлено через 42 минуты
Знать бы только какая это библиотека...
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
10.01.2010, 04:48  [ТС]
А как с помощью FtpWebRequest получить список файлов и каталогов в определенном каталоге?

И можно ли используя пример из 4го поста так же и записывать данные? Я заменил, на StreamWriter, но не получается. Возможно это из-за того, что я сейчас в интернете через мобильный телефон и сеть еле работает. Потому не уверен, почему не работает.

А так же, как узнать, введен ли существующий логин и пароль?
0
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
10.01.2010, 16:32
Лучший ответ Сообщение было отмечено как решение

Решение

получаем список файлов и каталогов:
C#
1
2
3
4
5
6
7
8
9
10
    FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create("ftp://.../dir/subdir");
 
    ftp.Method = WebRequestMethods.Ftp.ListDirectory;
 
    FtpWebResponse resp = (FtpWebResponse)ftp.GetResponse();
 
    StreamReader reader = new StreamReader(resp.GetResponseStream(), Encoding.Default);
    textBox1.Text = reader.ReadToEnd();
    reader.Close();
    resp.Close();
записываем в файл:
C#
1
2
3
4
5
6
7
8
9
10
11
    FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create("ftp://.../dir/file.dat");
 
    ftp.Method = WebRequestMethods.Ftp.UploadFile;
 
    StreamWriter writer = new StreamWriter(ftp.GetRequestStream(), Encoding.Default);
    writer.WriteLine("Hello World!");
    writer.Close();
            
    FtpWebResponse resp = (FtpWebResponse)ftp.GetResponse();
    textBox1.Text = resp.StatusDescription;
    resp.Close();
Добавлено через 16 минут
получение списка файлов и каталогов с обработкой исключений:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create("ftp://.../dir/subdir");
 
    ftp.Method = WebRequestMethods.Ftp.ListDirectory;
 
    FtpWebResponse resp;
    try
    {
         resp = (FtpWebResponse)ftp.GetResponse();
    }
    catch (WebException err)
    {
        textBox1.Text = err.Message;
        return;
    }
 
    StreamReader reader = new StreamReader(resp.GetResponseStream(), Encoding.Default);
    textBox1.Text = reader.ReadToEnd();
    reader.Close();
    resp.Close();
4
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
10.01.2010, 20:48  [ТС]
Цитата Сообщение от verzer Посмотреть сообщение
try
{
resp = (FtpWebResponse)ftp.GetResponse();
}
catch (WebException err)
{
textBox1.Text = err.Message;
return;
}
Если неправильная пара логин/пароль, исключение выскакивает тут?
0
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
10.01.2010, 20:50
да. и если имя хоста неправильное, тоже тут
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
11.01.2010, 09:59  [ТС]
А как узнать что именно неправильно?
0
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
11.01.2010, 10:30
как это как? если вошли в блок catch, то точно что-то пошло не так. ну и сообщения там более-менее внятные выдаются
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2010, 10:30
Помогаю со студенческими работами здесь

Копирование по FTP .bat
День добрый. Хочу обратиться к специалистам по поводу создания батника. Сам промучался много времени, с сомнительным результатом. В...

Копирование на FTP сервер
Всем добрый день! Помогите решить задачку с копированием файлов на FPT сервер из сетевой папки. Пробовал так: ...

Копирование файлов с FTP-сервера
Доброго времени суток. имея небольшой багаж знаний в этой области))) создаю небольшой батник для облегчения своей рутиной работы... ну и...

Копирование файла на FTP-сервер
Итак что есть: На данный момент, есть батник который автоматический несколько раз в день копирует один и тот же файл на FTP сервер, Файл с...

Копирование папки на FTP-сервер
Какой командой скопировать всю папку со своего компьютера на FTP сервер? Добавлено через 1 минуту Одну целую с подкаталогами и...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru