Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача файлов на FTP, с сохранением иерархии 
V
    Опции темы
wester
Дата 21.8.2010, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 4
Всего: 13



Доброго времени суток
Необходимо реализовать передачу файлов на FTP c сохранением иерархии папок ( то есть передать так же все подкаталоги)
в наличии имею методы CreateDirectory (string path) - создающий директорию и PutFile (string localFile, string remoteFile) - который передает файл.
беглый поиск по форуму, не принес результата.

какие идеи, господа ?
PM MAIL   Вверх
diadiavova
Дата 21.8.2010, 18:37 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Код

using System.Net;
using System.IO;

Код

        void CopyDirToFtp(string localdirectory, string remotedirectory, ICredentials cred)
        {
            foreach (string f in Directory.GetFiles(localdirectory))
            {
                var wc = new WebClient();
                wc.Credentials = cred;
                wc.UploadFile(string.Format(@"{0}\{1}", remotedirectory, Path.GetFileName(f)), f);
            }
            foreach (string d in Directory.GetDirectories(localdirectory))
            {
                var newdir = remotedirectory + d.Substring(localdirectory.Length);
                var req = (FtpWebRequest) WebRequest.Create(newdir);
                req.Credentials = cred;
                req.Method = WebRequestMethods.Ftp.MakeDirectory;
                req.GetResponse();
                CopyDirToFtp(d, newdir, cred);
            }
        }

Вызвать это можно так
Код

            var cred = new NetworkCredential("login", "password");
            var srcdir = @"C:\blahblahblah\ftpupload";
            var destdir = "ftp://kjkjjko.ru/ftpupload";
            CopyDirToFtp(srcdir, destdir, cred);

Естественно там надо обработать исключения и все такое, но это уже сам smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
wester
Дата 22.8.2010, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 4
Всего: 13



del

Это сообщение отредактировал(а) wester - 22.8.2010, 23:59
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.