private static void MainOperate(string fileName) { IDataService xmlService = new XmlDataService(); XMLOptions xml = new XMLOptions(); // 取得檔案 var fullfielpath = Path.Combine(watcher.XmlFilePath, fileName); var files = xmlService.GetRecords(fullfielpath); Console.WriteLine($"開始傳輸檔案,清單:{fileName}"); client.Operate(files); //傳輸完成後產生紀錄檔 xml.CreateXmlFile(files, $"{cfg.FinishXMLFilePath}{DateTime.Now.ToString("yyyyMMddHHmm")}.xml"); }
public void DownloadFileTest() { var cfg = new Config(); cfg.ProtocolType = FtpType.FTP; cfg.HostName = "192.168.0.226"; cfg.UserName = "******"; cfg.Password = "******"; cfg.TlsHostCertificateFingerprint = "4d:d5:9e:b1:64:13:ce:fd:49:a9:d0:d1:ba:ae:9f:07:04:8d:e1:e4"; cfg.FtpSecureType = FtpSecure.Explicit; cfg.SpeedLimit = 0; cfg.LocalPath = @"D:\TestFTP\download\"; cfg.RemotePath = "/download/"; var records = new List <TransferRecord>() { new TransferRecord() { FileName = "core.pdf", SHA256 = "", OperationType = Operation.Download }, new TransferRecord() { FileName = "系統教育訓練教材_1_偵結數位卷建檔.docx", SHA256 = "A790C40E4AC7BBD6A786519187733DC5074C3E1600202342702417671AEBDE56", OperationType = Operation.Download } }; var client = new WinSCPClient(cfg); StringBuilder error = new StringBuilder(); client.Operate(records); foreach (var r in records) { if (!r.Done) { error.AppendLine(r.ErrorMessage); } } Assert.AreEqual(string.Empty, error.ToString()); }
public void OperateTest() { var client = new WinSCPClient(cfg); // 取得檔案 string xmlString = _xmlString; var files = new List <TransferRecord>(); if (!string.IsNullOrWhiteSpace(xmlString)) { var xmlFiles = xmlString.DeserializeXml <XMLOptions.Files>(); files = xmlFiles.ListFileTag.Select(p => new TransferRecord() { FileName = p.Name, SHA256 = p.SHA256, OperationType = (Operation)Enum.Parse(typeof(Operation), p.OperationType) }).ToList(); } client.Operate(files); Assert.AreEqual(files.FirstOrDefault().SHA256, files.FirstOrDefault().FileSHA256); }