private List <FileInfo> Compare(bool compareWithTargetFolder) { List <FileInfo> sdCardFiles = Synchronisation.GetAllSdCardFiles(pathSdCard); List <FileInfo> allFilesToCopy = new List <FileInfo>(); if (!compareWithTargetFolder) { List <String> oldCopies = Synchronisation.GetAllOldCopyies(); foreach (FileInfo file in sdCardFiles) { String fileString = String.Format("{0}%{1}", file.GetFileName(), file.date); if (oldCopies.Contains(fileString)) { String date = oldCopies[oldCopies.IndexOf(fileString)].Split('%')[1]; if (date == file.date) { continue; } } Console.WriteLine("New file to Copy: " + file.path + " (" + file.date + ")"); allFilesToCopy.Add(file); } } else { List <FileInfo> compareFiles = Synchronisation.GetAllFiles(pathTargetFolder); List <String> compareFileNames = new List <String>(); foreach (FileInfo file in compareFiles) { compareFileNames.Add(file.GetFileName()); } foreach (FileInfo file in sdCardFiles) { if (compareFileNames.Contains(file.GetFileName())) { if (compareFiles[compareFileNames.IndexOf(file.GetFileName())].date == file.date) { continue; } } Console.WriteLine("New file to Copy: " + file.path + " (" + file.date + ")"); allFilesToCopy.Add(file); } } if (!day.Equals("all")) { for (int i = allFilesToCopy.Count - 1; i >= 0; i--) { FileInfo file = allFilesToCopy[i]; if (!file.date.Equals(day)) { allFilesToCopy.RemoveAt(i); } } } return(allFilesToCopy); }
private void CB_onlyOneDay_CheckedChanged(object sender, EventArgs e) { if (this.CB_onlyOneDay.Checked) { String pathSdCard = Path_SdCard.SelectedItem.ToString(); // Check if the given paths exsist... if (!Directory.Exists(pathSdCard)) { this.CB_onlyOneDay.Checked = false; string message = String.Format("Der angegebene Pfad \"{0}\" konnte nicht gefunden werden!", pathSdCard); string caption = "Pfad exsitiert nicht!"; MessageBox.Show(message, caption, MessageBoxButtons.OK); return; } new Thread( new ThreadStart(() => { List <FileInfo> files = Synchronisation.GetAllSdCardFiles(pathSdCard); List <String> addedDates = new List <String>(); foreach (FileInfo file in files) { if (!addedDates.Contains(file.date)) { addedDates.Add(file.date); CoB_selectDay.BeginInvoke(new Action(() => { CoB_selectDay.Items.Add(file.date); } )); } } CoB_selectDay.BeginInvoke(new Action(() => { CoB_selectDay.SelectedIndex = 0; } )); } )).Start(); } this.CoB_selectDay.Visible = this.CB_onlyOneDay.Checked; }