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); }
public FtpAccount GetFtpAccount(ConversionProfile profile) { var ftpAccountId = profile.Ftp.AccountId; if (string.IsNullOrWhiteSpace(ftpAccountId)) { return(null); } return(FtpAccounts.FirstOrDefault(x => x.AccountId == ftpAccountId)); }
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); }
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); }
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); }
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); }
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()); }
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); }
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()); } }
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 {} }
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()); } }
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!"; } } }