using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using System.IO; using System.Threading; using System.Globalization; namespace CapMoni { internal class Program { static void Main(string[] args) { var fileDir = ConfigurationManager.AppSettings["FileDir"].Trim();//采集文件存放目录 var duration = ConfigurationManager.AppSettings["Duration"].Trim();//采集时长 if (!int.TryParse(duration, out int durationInt)) { Console.WriteLine("请在配置文件中配置正确的时长信息"); return; } var freqs = ConfigurationManager.AppSettings["Freqs"].Trim();//频点 Task.Run(() => { while (true) { try { var dirs = Directory.EnumerateDirectories(fileDir); foreach (var dir in dirs) { DirectoryInfo info = new DirectoryInfo(dir); var canParse = DateTime.TryParseExact(info.Name, "yyyy_MM_dd_HH", null, System.Globalization.DateTimeStyles.None, out DateTime time); if (canParse) { if ((DateTime.Now - time).TotalHours > 1.2) { try { Directory.Delete(dir, true); Console.WriteLine($"目录【{dir}】已删除"); } catch { Console.WriteLine($"目录【{dir}】删除失败!"); } } } } } catch { } Thread.Sleep(60000); } }); while (true) { var dateNow = DateTime.Now; var fileNameDate = dateNow.ToString("yyyy_MM_dd_HH_mm_ss"); var fileNameTime = $"{fileNameDate}_000000000"; if (!Directory.Exists(fileDir)) Directory.CreateDirectory(fileDir); var fileDate = dateNow.ToString("yyyy_MM_dd_HH"); var fileDirDate = Path.Combine(fileDir, fileDate); var oldDir = Path.Combine(fileDir, dateNow.AddHours(-2).ToString("yyyy_MM_dd_HH")); if (Directory.Exists(oldDir)) { Directory.Delete(oldDir, true); } if (!Directory.Exists(fileDirDate)) Directory.CreateDirectory(fileDirDate); var freqList = freqs.Split(new string[] { ";" }, System.StringSplitOptions.RemoveEmptyEntries); Parallel.For(0, freqList.Length, idx => { var fileName = $"{fileNameTime}_ch11_-1___N43.333333_E57.222222_96000.000Hz_{freqList[idx]}MHz_ch1_xd{idx + 1}"; var filePath = Path.Combine(fileDirDate, $"{fileName}.dat"); BinaryWriter datFile1 = new BinaryWriter(new FileStream(filePath, FileMode.Create), Encoding.UTF8); fileName = $"{fileNameTime}_ch22_-1___N43.333333_E57.222222_96000.000Hz_{freqList[idx]}MHz_ch2_xd{idx + 1}"; filePath = Path.Combine(fileDirDate, $"{fileName}.dat"); BinaryWriter datFile2 = new BinaryWriter(new FileStream(filePath, FileMode.Create), Encoding.UTF8); fileName = $"{fileNameTime}_ch33_-1___N43.333333_E57.222222_96000.000Hz_{freqList[idx]}MHz_ch3_xd{idx + 1}"; filePath = Path.Combine(fileDirDate, $"{fileName}.dat"); BinaryWriter datFile3 = new BinaryWriter(new FileStream(filePath, FileMode.Create), Encoding.UTF8); var dataCon = File.ReadAllBytes("1.dat"); var count = durationInt / 15; for (int i = 0; i < count; i++) { datFile1.Write(dataCon); datFile2.Write(dataCon); datFile3.Write(dataCon); } datFile1.Flush(); datFile1.Close(); datFile2.Flush(); datFile2.Close(); datFile3.Flush(); datFile3.Close(); Thread.Sleep(durationInt * 1000); Console.WriteLine($"{filePath}采集完毕"); }); } } } }