private void listModifiedFiles(string origPath, string dest, DateTime from, DateTime to) { DirectoryInfo dir = new DirectoryInfo(origPath); string temp = dest.EndsWith("\\") ? dest : dest + "\\"; try { foreach (DirectoryInfo subDir in dir.GetDirectories()) { listModifiedFiles(subDir.FullName, temp + subDir.Name, from, to); } foreach (FileInfo file in dir.GetFiles()) { bool moveFile = false; bool excludeFile = false; foreach (string item in Excludes.Split(';')) { if (file.FullName.ToLower().Contains(item.ToLower())) { excludeFile = true; break; } } if (!excludeFile) { foreach (string item in Filters.Split(';')) { if (file.Name.ToLower().EndsWith(item.ToLower())) { moveFile = true; break; } } } if ( (moveFile) && (file.LastWriteTime.CompareTo(from) >= 0) && (file.LastWriteTime.CompareTo(to) <= 0) ) { if (ScanReadOnly || (file.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) { FilesModified.Add(file.FullName); } } } } catch (Exception) { } }
/// <summary>添加排除项</summary> /// <param name="value"></param> public void AddExclude(String value) { if (value.IsNullOrEmpty()) { return; } var es = new List <String>(); var ss = Excludes?.Split(","); if (ss != null) { es.AddRange(ss); } if (!es.Contains(value)) { es.Add(value); Excludes = es.Distinct().Join(); } }