public void Start() { string path = @"D:\Project\StreamingRoseRiver\Obama\Tree1-5000-1e-100-LastYear\"; HashSet <int> removeIndices = Util.GetHashSet(Util.GetIntArray(0, 70)); HashSet <int> selectIndices = Util.GetHashSet(Util.GetIntArray(71, 124)); int substractCount = removeIndices.Count; //foreach (var subPath in Directory.GetDirectories(path)) { foreach (var fullFileName in Directory.GetFiles(path)) //Directory.GetFiles(subPath)) { var fileName = StringOperations.GetFileName(fullFileName); var fileFolder = StringOperations.GetFolder(fullFileName); int index = GetIndexInFile(fileName); if (index == -1 || removeIndices.Contains(index)) { File.Delete(fullFileName); } else { File.Copy(fullFileName, StringOperations.EnsureFolderEnd(fileFolder) + ReplaceFileNameIndex(fileName, index - substractCount), true); File.Delete(fullFileName); } } } }
private static string[] FilterDates(IEnumerable <string> dates, string startDate, string endDate) { DateTime startDateTime = StringOperations.ParseDateTimeString(startDate, "yy-MM-dd"); DateTime endDateTime = StringOperations.ParseDateTimeString(endDate, "yy-MM-dd"); List <string> selectedDates = new List <string>(); List <string> pureDates = new List <string>(); Dictionary <string, string> puredateToDate = new Dictionary <string, string>(); foreach (string date in dates) { try { var filename = StringOperations.GetFileName(date); string date_pure = filename.Substring(0, 10);//date.Substring(date.Length - 10, 10); DateTime dateTime = StringOperations.ParseDateTimeString(date_pure, "yy-MM-dd"); if (dateTime.Ticks >= startDateTime.Ticks && dateTime.Ticks <= endDateTime.Ticks) { //selectedDates.Add(date); if (puredateToDate.ContainsKey(date_pure)) { throw new Exception("Duplicate Dates!"); } puredateToDate.Add(date_pure, date); pureDates.Add(date_pure); } } catch { } } pureDates.Sort(); foreach (string puredate in pureDates) { selectedDates.Add(puredateToDate[puredate]); } return(selectedDates.ToArray()); }