using CommonLib.IO; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DataCollectionSystem { public partial class DlgBatchExportForm : Form { public DlgBatchExportForm() { InitializeComponent(); } public List fileinfos { get; private set; } = null; private void DlgBatchExportForm_Load(object sender, EventArgs e) { fileinfos = CommonFile.GetAllFilesInDirectory(FileDirectory, "*.cap").OrderBy(fileinfo => { var fileNames = Path.GetFileNameWithoutExtension(fileinfo.FullName).Split('-'); int count = fileNames.Count(); string StrSubTime = "0"; if(count>0) StrSubTime= fileNames[count - 1]; int t = int.Parse(StrSubTime); return t; }).ToList(); FileInfo[] fileinfostart = CommonFile.GetAllFilesInDirectory(FileDirectory,$"{StartFileName}.cap").ToArray(); DateTime dtStartTime = fileinfostart[0].CreationTime; for(int i=fileinfos.Count-1;i>=0 ;i--) { if(fileinfos[i].CreationTime< dtStartTime) { fileinfos.RemoveAt(i); } } foreach(var file in fileinfos) { string FileName = Path.GetFileNameWithoutExtension(file.FullName ); cmbStartFile.Items.Add(FileName); cmbEndFile.Items.Add(FileName); } cmbStartFile.SelectedText = this.StartFileName; cmbEndFile.SelectedText = this.StartFileName; this.EndFileName = this.StartFileName; ; } void RemoveInvalidateFile() { Func GetSubIndex = (string FileName) => { var fileNames = FileName.Split('-'); int count = fileNames.Count(); string StrSubTime = "0"; if (count > 0) StrSubTime = fileNames[count - 1]; int t = int.Parse(StrSubTime); return t; }; FileInfo[] fileinfostart = CommonFile.GetAllFilesInDirectory(FileDirectory, $"{StartFileName}.cap").ToArray(); FileInfo[] fileinfosEnd = CommonFile.GetAllFilesInDirectory(FileDirectory, $"{EndFileName}.cap").ToArray(); int dtStartTime = GetSubIndex(Path.GetFileNameWithoutExtension( fileinfostart[0].FullName)); int dtEndTime = GetSubIndex(Path.GetFileNameWithoutExtension(fileinfosEnd[0].FullName)); for (int i = fileinfos.Count - 1; i >= 0; i--) { int dtSubTime = GetSubIndex(Path.GetFileNameWithoutExtension(fileinfos[i].FullName)); if((dtSubTime> dtEndTime)||(dtSubTime< dtStartTime)) { fileinfos.RemoveAt(i); } } } private void BtnOK_Click(object sender, EventArgs e) { RemoveInvalidateFile(); } private void cmbStartFile_SelectedIndexChanged(object sender, EventArgs e) { this.StartFileName = cmbStartFile.SelectedItem.ToString(); } private void cmbEndFile_SelectedIndexChanged(object sender, EventArgs e) { this.EndFileName = cmbEndFile.SelectedItem.ToString(); ; } } }