Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Передача файлов на FTP, с сохранением иерархии


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

какие идеи, господа ?

Автор: diadiavova 21.8.2010, 18:37
Код

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 

Автор: wester 22.8.2010, 23:46
del

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)