public static string CheckFTPConfigVersion() { string sVersion = string.Empty; try { Mobile.ConfigData data = Mobile.configData; using (SftpClient sftp = new SftpClient(data.ftpDownload_Host, data.ftpDownload_Port, data.ftpDownload_User, data.ftpDownload_Pass)) { sftp.Connect(); foreach (SftpFile file in sftp.ListDirectory(data.ftpDownload_Path)) { if (file.Name.Contains(FIL_VER)) { sVersion = file.Name.Substring(0, file.Name.Length - 4); // delete ".ver" break; } } sftp.Disconnect(); if (string.IsNullOrEmpty(sVersion)) { return("Version_0"); } return(sVersion); } } catch (Exception e) { return(null); } }
public static bool DownloadConfigFiles(out string sfileCert) { bool ok = true; sfileCert = String.Empty; try { Mobile.ConfigData data = Mobile.configData; using (SftpClient sftp = new SftpClient(data.ftpDownload_Host, data.ftpDownload_Port, data.ftpDownload_User, data.ftpDownload_Pass)) { sftp.Connect(); // List all posible files in the documents directory // Check if file's lastwritetime is the lastest List <SftpFile> ftp_array_files = new List <SftpFile>(); // Remote FTP File directory //bool isCertificate; string configPath = Mobile.ConfigPath; foreach (SftpFile file in sftp.ListDirectory(data.ftpDownload_Path)) { string name = file.Name; if (name.ToLower().Contains(XML_CER)) { sfileCert = name.ToLower(); } if (name.Contains(XML_CER) || //name.Contains(FIL_VER) || (name.Contains(XML_EXT) && CheckConfigFile(name.ToLower()))) { string sfile = Path.Combine(configPath, name.ToLower()); if (File.Exists(sfile)) { File.Delete(sfile); } using (Stream stream = File.OpenWrite(sfile)) // keep in low case { sftp.DownloadFile(Path.Combine(data.ftpDownload_Path, name), stream); } } } sftp.Disconnect(); } } catch (Exception e) { ok = false; } Console.WriteLine("Download config.files from FTP: " + ((ok) ? "OK" : "NO")); return(ok); }