public async void GetListAsync() { FtpClient ftp = new FtpClient(Main.ftphost); ftp.Credentials = new System.Net.NetworkCredential(Main.ftpuser, Main.ftppass); ftp.Connect(); FtpListItem[] fli = await ftp.GetListingAsync(Main.ftppath); foreach (FtpListItem item in fli) { if (!Directory.Exists(@"backup\")) { Directory.CreateDirectory(@"backup\"); } string fx = item.Name.Substring(item.Name.LastIndexOf('.') + 1);; if (fx == "mxw") { string bjson = item.Name.Substring(0, item.Name.LastIndexOf(".") + 1); ftp.DownloadFile(@"backup\" + item.Name.Substring(0, item.Name.LastIndexOf(".") + 1) + "json", "backup/" + bjson + "json"); BackupJson j = JsonConvert.DeserializeObject <BackupJson>(File.ReadAllText(@"backup\" + bjson + "json")); dataGridView1.Rows.Add(new object[] { j.date, j.time, item.Name }); DataGridViewButtonColumn btn = new DataGridViewButtonColumn(); dataGridView1.Columns.Add(btn); btn.Text = "Restaurer"; btn.UseColumnTextForButtonValue = true; } } ftp.Disconnect(); }
/// <summary> /// 从Redis获取同步数据 /// </summary> /// <param name="ctx"></param> /// <param name="dataType"></param> /// <param name="redis"></param> /// <param name="redisKeys"></param> /// <returns></returns> private static List <AbsSynchroDataInfo> GetSynchroObjects(Context ctx, SynchroDataType dataType, IRedisClient redis, IEnumerable <string> redisKeys, SynchroDirection direction = SynchroDirection.ToK3) { List <AbsSynchroDataInfo> datas = null; List <string> jsons = null; Dictionary <string, string> dict = null; if (redis != null) { if (redisKeys != null && redisKeys.Count() > 0) { dict = new Dictionary <string, string>(); jsons = new List <string>(); foreach (var item in redisKeys) { if (!string.IsNullOrWhiteSpace(item)) { string json = redis.Get <string>(item.ToString()); if (!string.IsNullOrWhiteSpace(json)) { BackupJson.WriteJsonToLocal(ctx, dataType, json); jsons.Add(json); dict.Add(item.ToString(), JsonUtils.ReplaceDoubleQuotes(json)); } } } BackupDataToRedis(ctx, dict, redisKeys, dataType, direction); } } if (jsons != null && jsons.Count > 0) { datas = new List <AbsSynchroDataInfo>(); foreach (var json in jsons) { if (json.IsNullOrEmptyOrWhiteSpace() || json.EqualsIgnoreCase("None")) { continue; } try { AbsSynchroDataInfo data = SynchroDataHelper.BuildSynchroData(ctx, dataType, json); if (data != null) { datas.Add(data); } } catch (Exception ex) { LogUtils.WriteSynchroLog(ctx, dataType, "下载" + dataType + "出现异常" + ex.Message + System.Environment.NewLine + ex.StackTrace); } } } return(datas); }
private void timerBackup_Tick(object sender, EventArgs e) { FtpClient ftp = new FtpClient(Main.ftphost); ftp.Credentials = new System.Net.NetworkCredential(Main.ftpuser, Main.ftppass); ftp.Connect(); string user = ftpuser.Substring(ftpuser.LastIndexOf('_') + 1); string hour = DateTime.Now.Hour.ToString(); string minute = DateTime.Now.Minute.ToString(); string day = DateTime.Now.Day.ToString(); string month = DateTime.Now.Month.ToString(); string year = DateTime.Now.Year.ToString(); IO.ClearDir("tmp"); IO.CreateSample(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute), "", Main.clientpath + @"\WTF"); ftp.UploadFile(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute), @"backup/" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute)); string fm = ""; string pe = ""; switch (DateTime.Now.Month) { case 1: fm = "Janvier"; break; case 2: fm = "Février"; break; case 3: fm = "Mars"; break; case 4: fm = "Avril"; break; case 5: fm = "Mai"; break; case 6: fm = "Juin"; break; case 7: fm = "Juillet"; break; case 8: fm = "Août"; break; case 9: fm = "Septembre"; break; case 10: fm = "Octobre"; break; case 11: fm = "Novembre"; break; case 12: fm = "Décembre"; break; } switch (DateTime.Now.Hour) { case 1: pe = "am"; break; case 2: pe = "am"; break; case 3: pe = "am"; break; case 4: pe = "am"; break; case 5: pe = "am"; break; case 6: pe = "am"; break; case 7: pe = "am"; break; case 8: pe = "am"; break; case 9: pe = "am"; break; case 10: pe = "am"; break; case 11: pe = "am"; break; case 12: pe = "pm"; break; case 13: pe = "pm"; break; case 14: pe = "pm"; break; case 15: pe = "pm"; break; case 16: pe = "pm"; break; case 17: pe = "pm"; break; case 18: pe = "pm"; break; case 19: pe = "pm"; break; case 20: pe = "pm"; break; case 21: pe = "pm"; break; case 22: pe = "pm"; break; case 23: pe = "pm"; break; case 24: pe = "am"; break; } BackupJson bjson = new BackupJson() { date = string.Format("{0} {1} {2}", day, fm, year), time = string.Format("{0}:{1}{2}", hour, Handler.Int.ZeroPad(DateTime.Now.Minute), pe), archive = string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute) }; using (FileStream fs = File.Open(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.json", user, month, day, year, hour, minute), FileMode.CreateNew)) using (StreamWriter sw = new StreamWriter(fs)) using (JsonWriter jw = new JsonTextWriter(sw)) { jw.Formatting = Newtonsoft.Json.Formatting.Indented; JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(jw, bjson); } ftp.UploadFile(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.json", user, month, day, year, hour, minute), @"backup/" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.json", user, month, day, year, hour, minute)); }