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; namespace CapMoni { internal class Program { static void Main(string[] args) { Console.WriteLine("开始采集..."); 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();//频点 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); Thread.Sleep(durationInt * 1000); var dataCon = File.ReadAllBytes("1.dat"); datFile1.Write(dataCon); datFile2.Write(dataCon); datFile3.Write(dataCon); //Thread.Sleep(6000); datFile1.Flush(); datFile1.Close(); datFile2.Flush(); datFile2.Close(); datFile3.Flush(); datFile3.Close(); Console.WriteLine($"{filePath}采集完毕"); }); } } } }