123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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);
- 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}采集完毕");
- });
- }
- }
- }
- }
|