示例#1
0
        public bool UploadNoArchive(FtpAccounts account, string Path, string Name)
        {
            bool         res = false;
            myFTP_client ftp = new myFTP_client();

            ftp.Host     = account.host;
            ftp.Password = account.password;
            ftp.Port     = account.port;
            ftp.UserName = account.username;
            if (String.IsNullOrEmpty(account.path) == true) // проверка пути куда заливать файл.
            {
                res = ftp.UploadFast(Path, Name);
            }
            else
            {
                res = ftp.UploadInFolder(Path, account.path, Name);
            }
            return(res);
        }
示例#2
0
        public bool UploadZipArchive(FtpAccounts account, string Path, string Name, string Password, out string ftpfilename)
        {
            bool   res         = false;
            string archivePass = "";

            ftpfilename = "";
            ZipFile  zip;
            FileInfo info          = new FileInfo(Path);
            string   PathInArchive = Extract.BetweenStart(Path, info.Name) + Extract.BetweenStart(Name, ".") + ".zip";

            ftpfilename = Extract.BetweenStart(Name, ".") + ".zip";
            FileInfo ArchiveInfo = new FileInfo(PathInArchive);

            using (zip = new ZipFile(PathInArchive, Encoding.UTF8))
            {
                archivePass = Password;

                zip.CompressionLevel = Ionic.Zlib.CompressionLevel.Default; //Устанавливаем уровень сжатия
                zip.TempFileFolder   = System.IO.Path.GetTempPath();        //Задаем системную директорию TEMP для временных файлов
                zip.Password         = archivePass;                         // Устанавливаем пароль.
                zip.AddFile(Path, "\\");                                    //Добавляем файл. и "\\" что файл будет находится в корневой папке архива.
                zip.Save();                                                 //Сохраняем архив
                zip = null;
            }
            myFTP_client ftp = new myFTP_client();

            ftp.Host     = account.host;
            ftp.Password = account.password;
            ftp.Port     = account.port;
            ftp.UserName = account.username;

            if (String.IsNullOrEmpty(account.path) == true)
            {
                res = ftp.UploadFast(PathInArchive, ArchiveInfo.Name);
            }
            else
            {
                res = ftp.UploadInFolder(PathInArchive, account.path, ArchiveInfo.Name);
            }
            File.Delete(PathInArchive);
            return(res);
        }
示例#3
0
        public bool UploadRarArchive(string winrarpath, FtpAccounts account, string Path, string Name, string Password, out string ftpfilename)
        {
            bool     res           = false;
            string   archivepass   = "";
            string   WinRarExePath = winrarpath;                // В Данной строке указываем путь к установленной в Windows архиватору WinRar, к ее екзешнику Rar.exe.!!!!!!!!!!!!!!!!!!
            WinRar   wRar          = new WinRar(WinRarExePath); // Для работы со стандартным WinRar создали файл WinRar.cs и в нем реализовали работу с архиватором .
            FileInfo info          = new FileInfo(Path);

            ftpfilename = "";
            string PathInArchive = Extract.BetweenStart(Path, info.Name) + Extract.BetweenStart(Name, ".") + ".rar";

            ftpfilename = Extract.BetweenStart(Name, ".") + ".rar";
            FileInfo ArchiveInfo = new FileInfo(PathInArchive);

            archivepass = Password;

            if (wRar.CreatePasswordRaRFromFile(Path, archivepass, PathInArchive) == false) // Создает запароленный архив и в результате выдает bool  значение.
            {
                return(false);
            }
            myFTP_client ftp = new myFTP_client();    // создаем новый эеземпляр класса ftp_client.

            ftp.Host     = account.host;
            ftp.Password = account.password;
            ftp.Port     = account.port;                         //Заполняем его.
            ftp.UserName = account.username;
            if (String.IsNullOrEmpty(account.path) == true)
            {
                res = ftp.UploadFast(PathInArchive, ArchiveInfo.Name); // если настройках аккаунта в settings.ini в параметр path оставить пустым, то файл закидываем в корень сервака.
            }
            else
            {
                res = ftp.UploadInFolder(PathInArchive, account.path, ArchiveInfo.Name); //иначе закидываем по указанному в настройках пути сервера.
            }
            File.Delete(PathInArchive);                                                  // Удаляем ненужный более архив на нашем компьютере.
            return(res);
        }