Ejemplo n.º 1
0
        public List <FtpAccounts> GetSettingsContent()  // получаем настройки ftp аккаунтов.
        {
            List <FtpAccounts> Result = new List <FtpAccounts>();

            try
            {
                string settingsContent = File.ReadAllText(System.AppDomain.CurrentDomain.BaseDirectory + "\\settings.ini");
                winRarPath_global = Extract.Between(settingsContent, "#winrarpath=", ";");
                string[]      mass_1           = settingsContent.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
                List <string> filteredftplines = mass_1.Where(x => x.Contains("ftpaccount")).ToList();

                foreach (var el in filteredftplines)
                {
                    FtpAccounts curAcc = new FtpAccounts();
                    curAcc.viewname = Extract.Between(el, "viewname=", ",$");
                    curAcc.username = Extract.Between(el, "username="******",$");
                    curAcc.password = Extract.Between(el, "password="******",$");
                    curAcc.port     = Extract.Between(el, "port=", ",$");
                    curAcc.host     = Extract.Between(el, "host=", ",$");
                    curAcc.path     = Extract.Between(el, "path=", ",$");
                    curAcc.linkview = Extract.Between(el, "linkview=", ";");
                    Result.Add(curAcc);
                }
            }
            catch (Exception ecc)
            {
                MessageBox.Show("Ошибка чтения файла settings.ini (должен находится рядом с .exe) : " + ecc.Message);
            }

            return(Result);
        }
Ejemplo n.º 2
0
        public FtpAccount GetFtpAccount(ConversionProfile profile)
        {
            var ftpAccountId = profile.Ftp.AccountId;

            if (string.IsNullOrWhiteSpace(ftpAccountId))
            {
                return(null);
            }

            return(FtpAccounts.FirstOrDefault(x => x.AccountId == ftpAccountId));
        }
Ejemplo n.º 3
0
        string ShowUploadLink(FtpAccounts account, string ftpfilename)
        {
            string res = "";

            res = "http://" + account.host + "/" + account.path + "/" + ftpfilename;

            if (String.IsNullOrEmpty(account.linkview) == false)
            {
                res = account.linkview + "/" + ftpfilename;
            }

            return(res);
        }
Ejemplo n.º 4
0
        public FtpAccounts SelectViewName(string viewname)  // по viewname из settings.ini  получаем данный для текущего ftp аккаунта.
        {
            FtpAccounts Res = new FtpAccounts();

            foreach (var el in FtpAcc_global)
            {
                if (el.viewname == selectAccount_global || el.viewname == viewname)// проверяем соответствие имен аккаунта в Gui и в cmd режимах.
                {
                    Res.viewname = el.viewname;
                    Res.username = el.username;
                    Res.port     = el.port;
                    Res.password = el.password;   // получаем настройки аккаунта.
                    Res.path     = el.path;
                    Res.host     = el.host;
                    Res.linkview = el.linkview;
                }
            }
            return(Res);
        }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();


            for (int i = 0; i < DropboxAccounts.Count; i++)
            {
                sb.AppendLine(DropboxAccounts.ToString());
            }


            for (int i = 0; i < FtpAccounts.Count; i++)
            {
                sb.AppendLine(FtpAccounts.ToString());
            }


            for (int i = 0; i < HttpAccounts.Count; i++)
            {
                sb.AppendLine(HttpAccounts.ToString());
            }


            for (int i = 0; i < SmtpAccounts.Count; i++)
            {
                sb.AppendLine(SmtpAccounts.ToString());
            }


            for (int i = 0; i < TimeServerAccounts.Count; i++)
            {
                sb.AppendLine(TimeServerAccounts.ToString());
            }


            return(sb.ToString());
        }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
        public void ReplaceWith(Accounts source)
        {
            DropboxAccounts.Clear();
            for (int i = 0; i < source.DropboxAccounts.Count; i++)
            {
                DropboxAccounts.Add(source.DropboxAccounts[i].Copy());
            }


            FtpAccounts.Clear();
            for (int i = 0; i < source.FtpAccounts.Count; i++)
            {
                FtpAccounts.Add(source.FtpAccounts[i].Copy());
            }


            HttpAccounts.Clear();
            for (int i = 0; i < source.HttpAccounts.Count; i++)
            {
                HttpAccounts.Add(source.HttpAccounts[i].Copy());
            }


            SmtpAccounts.Clear();
            for (int i = 0; i < source.SmtpAccounts.Count; i++)
            {
                SmtpAccounts.Add(source.SmtpAccounts[i].Copy());
            }


            TimeServerAccounts.Clear();
            for (int i = 0; i < source.TimeServerAccounts.Count; i++)
            {
                TimeServerAccounts.Add(source.TimeServerAccounts[i].Copy());
            }
        }
Ejemplo n.º 10
0
        public void ReadValues(Data data, string path)
        {
            try
            {
                int numClasses = int.Parse(data.GetValue(@"" + path + @"DropboxAccounts\numClasses"));
                for (int i = 0; i < numClasses; i++)
                {
                    DropboxAccount tmp = new DropboxAccount();
                    tmp.ReadValues(data, @"" + path + @"DropboxAccounts\" + i + @"\");
                    DropboxAccounts.Add(tmp);
                }
            } catch {}


            try
            {
                int numClasses = int.Parse(data.GetValue(@"" + path + @"FtpAccounts\numClasses"));
                for (int i = 0; i < numClasses; i++)
                {
                    FtpAccount tmp = new FtpAccount();
                    tmp.ReadValues(data, @"" + path + @"FtpAccounts\" + i + @"\");
                    FtpAccounts.Add(tmp);
                }
            } catch {}


            try
            {
                int numClasses = int.Parse(data.GetValue(@"" + path + @"HttpAccounts\numClasses"));
                for (int i = 0; i < numClasses; i++)
                {
                    HttpAccount tmp = new HttpAccount();
                    tmp.ReadValues(data, @"" + path + @"HttpAccounts\" + i + @"\");
                    HttpAccounts.Add(tmp);
                }
            } catch {}


            try
            {
                int numClasses = int.Parse(data.GetValue(@"" + path + @"SmtpAccounts\numClasses"));
                for (int i = 0; i < numClasses; i++)
                {
                    SmtpAccount tmp = new SmtpAccount();
                    tmp.ReadValues(data, @"" + path + @"SmtpAccounts\" + i + @"\");
                    SmtpAccounts.Add(tmp);
                }
            } catch {}


            try
            {
                int numClasses = int.Parse(data.GetValue(@"" + path + @"TimeServerAccounts\numClasses"));
                for (int i = 0; i < numClasses; i++)
                {
                    TimeServerAccount tmp = new TimeServerAccount();
                    tmp.ReadValues(data, @"" + path + @"TimeServerAccounts\" + i + @"\");
                    TimeServerAccounts.Add(tmp);
                }
            } catch {}
        }
Ejemplo n.º 11
0
        public void CommandLineWorking(string cmdline)
        {
            try
            {
                if (this.WindowState == WindowState.Normal)
                {
                    this.ShowInTaskbar = false;
                    this.Hide();                      // скрываем с экрана нашу GUI форму.
                }
                CmdContent cmdcont  = new CmdContent();
                string     password = "";
                cmdcont = ParseCmd(cmdline);  // сортируем нашу cmd строку с данными.
                if (File.Exists(cmdcont.path) == true)
                {
                    if (cmdcont.archive_pass == "random")
                    {
                        password = GetRandomPassword();    // проверяем наличие пароля ,если нет то выбираем random пароль.
                    }
                    else
                    {
                        password = cmdcont.archive_pass;                     // иначе выбираем пароль заданный юзером.
                    }
                    FtpAccounts curacc = SelectViewName(cmdcont.ftpaccount); // Получаем все параметры выбранного ftp аккаунта.


                    if (cmdcont.compress == "none")  // проверяем на требование архивации , если в параметре none...
                    {
                        string resContent = "";
                        bool   uploadRes  = UploadNoArchive(curacc, cmdcont.path, cmdcont.name); // То запускаем загрузку на сервер без архивации.
                        if (uploadRes == true)
                        {
                            resContent = ShowUploadLink(curacc, cmdcont.name);
                        }
                        else
                        {
                            resContent = "Failure!";
                        }
                        if (uploadRes == true)
                        {
                            MessageBoxTimer.Show("SUCCESS", "SUCCESS", MessageBoxTimer.MessageBoxType.OK, 700);                    // Выдаем на 1 сек окно Успешно или Неуспешно выполнилась загрузка на сервер .
                        }
                        else
                        {
                            MessageBoxTimer.Show("FAILURE", "FAILURE", MessageBoxTimer.MessageBoxType.OK, 700);
                        }
                        //ToClipBoard(resContent, null); // Добавляем в буфер обмена наш результат.
                        Clipboard.SetText(resContent);
                    }
                    else if (cmdcont.compress == "rar") // если в параметре выбран rar...
                    {
                        string resContent = ""; string ftpfilename = "";
                        bool   uploadRes = UploadRarArchive(winRarPath_global, curacc, cmdcont.path, cmdcont.name, password, out ftpfilename); // Запускаем Загрузку на сервер с архиватора WinRar.
                        if (uploadRes == true)
                        {
                            resContent = ShowUploadLink(curacc, ftpfilename) + "\r\n" + password;
                        }
                        else
                        {
                            resContent = "Failure!";
                        }

                        if (uploadRes == true)
                        {
                            MessageBoxTimer.Show("SUCCESS", "SUCCESS", MessageBoxTimer.MessageBoxType.OK, 700);                    // Выдаем на 1 сек окно Успешно или Неуспешно выполнилась загрузка на сервер .
                        }
                        else
                        {
                            MessageBoxTimer.Show("FAILURE", "FAILURE", MessageBoxTimer.MessageBoxType.OK, 700);
                        }
                        //ToClipBoard(resContent, password);
                        Clipboard.SetText(resContent);
                    }
                    else if (cmdcont.compress == "zip")  // если выбран режим архивации zip.
                    {
                        string resContent = ""; string ftpfilename = "";
                        bool   uploadRes = UploadZipArchive(curacc, cmdcont.path, cmdcont.name, password, out ftpfilename); // Запускаем архивацию с библиотеки "Ionic.Zip.dll" , должна лежать рядом с екзешником.
                        if (uploadRes == true)
                        {
                            resContent = ShowUploadLink(curacc, ftpfilename) + "\r\n" + password;
                        }
                        else
                        {
                            resContent = "Failure!";
                        }

                        if (uploadRes == true)
                        {
                            MessageBoxTimer.Show("SUCCESS", "SUCCESS", MessageBoxTimer.MessageBoxType.OK, 700);                    // Выдаем на 1 сек окно Успешно или Неуспешно выполнилась загрузка на сервер .
                        }
                        else
                        {
                            MessageBoxTimer.Show("FAILURE", "FAILURE", MessageBoxTimer.MessageBoxType.OK, 700);
                        }
                        //ToClipBoard(resContent, password);
                        Clipboard.SetText(resContent);
                    }
                    else
                    {
                        MessageBox.Show("Не верно задан режим архивации(rar,zip,none)!");
                    }
                }
                else
                {
                    MessageBox.Show("Файл не существует или некорректно указан путь!");
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show("Ошибка " + exc.ToString());
            }
        }
Ejemplo n.º 12
0
        private void UPLOAD_Click(object sender, RoutedEventArgs e)
        {
            if (String.IsNullOrEmpty(FilePath.Text) == true)
            {
                MessageBox.Show("Введите путь к файлу для загрузки на сервер!");
                return;
            }
            FtpAccounts curAccount = SelectViewName(selectAccount_global);// Выбираем текущий ftp аккаунт.

            //  пароль архива
            //
            string ArchivePassword = "";

            if (Zip.IsChecked == true || Rar.IsChecked == true)
            {
                ArchivePassword = GetRandomPassword();
            }

            if (String.IsNullOrEmpty(Custom_Pass.Text) == false)
            {
                ArchivePassword = Custom_Pass.Text;
            }

            if (None.IsChecked == true)                                           // если выбрали в Radiobutton Без архивации.
            {
                bool Res = UploadNoArchive(curAccount, FilePath.Text, Name.Text); // Запускаем загрузку без архивации.
                if (Res == true)
                {
                    string cont = ShowUploadLink(curAccount, Name.Text);
                    OutputTextbox.Text = cont;
                    Clipboard.SetText(cont);
                }

                else
                {
                    OutputTextbox.Text = "Failure!";
                }
            }
            else if (Zip.IsChecked == true)
            {
                string ftpfilename = "";
                bool   Res         = UploadZipArchive(curAccount, FilePath.Text, Name.Text, ArchivePassword, out ftpfilename);// Запускаем zip.
                if (Res == true)
                {
                    string cont = ShowUploadLink(curAccount, ftpfilename) + "\r\n" + ArchivePassword;
                    OutputTextbox.Text = cont;
                    Clipboard.SetText(cont);
                }
                else
                {
                    OutputTextbox.Text = "Failure!";
                }
            }
            else
            {
                string ftpfilename = "";
                bool   Res         = UploadRarArchive(winRarPath_global, curAccount, FilePath.Text, Name.Text, ArchivePassword, out ftpfilename); // Запуск RaR.
                if (Res == true)
                {
                    string cont = ShowUploadLink(curAccount, ftpfilename) + "\r\n" + ArchivePassword;
                    OutputTextbox.Text = cont;
                    Clipboard.SetText(cont);
                }
                else
                {
                    OutputTextbox.Text = "Failure!";
                }
            }
        }