public FolderCmpItem createCmpItem(FileInfo file, FileInfo secondFile, string imagePath, string statusCmp, string parentDir, string pathToCopy = null, string color = null, bool isCheck = false) { return(new FolderCmpItem() { firstName = file == null ? "" : file.FullName, firstSize = file == null ? "" : MyFile.GetFileSize(file), firstDate = file == null ? "" : MyFile.GetFileDate(file), сmpIcon = imagePath == null ? null : imagePath, secondDate = secondFile == null ? "" : MyFile.GetFileDate(secondFile), secondSize = secondFile == null ? "" : MyFile.GetFileSize(secondFile), secondName = secondFile == null ? "" : secondFile.FullName, status = statusCmp, parentDir = parentDir, pathToCopy = pathToCopy, color = color, isCheck = isCheck }); }
private void CompareFilesInFolder(string leftPath, string rightPath) { string filter = filterExtension.Text; filesToRightPathCopy.Clear(); filesToLeftPathCopy.Clear(); leftFiles = MyFile.GetFiles(leftPath, filter); rightFiles = MyFile.GetFiles(rightPath, filter); string imgPath; FolderCmpItem cpmItem = new FolderCmpItem(); string pathToCopy; if (leftFiles.Length > 0 || rightFiles.Length > 0) { SyncBtn.IsEnabled = true; } foreach (FileInfo file in leftFiles) { int index = Array.IndexOf(rightFiles, rightFiles.FirstOrDefault(f => f.Name == file.Name)); if (index > -1) { FileInfo secondFile = rightFiles[index]; imgPath = EQUAL_IMG; string redItem = "red"; if (byDate.IsChecked == true) { string dateFile_1 = MyFile.GetFileDate(file); string dateFile_2 = MyFile.GetFileDate(secondFile); DateTime nowdate = DateTime.Today; DateTime filedate_1 = file.LastWriteTime; DateTime filedate_2 = secondFile.LastWriteTime; TimeSpan comparevalue = filedate_2 - filedate_1; if (Math.Abs(comparevalue.Seconds) > 0) { imgPath = NOT_EQUAL_IMG; pathToCopy = BuiltPathToCopy(file, LEFT); ListCmpFilesCollections.Add(cpmItem.createCmpItem(file, secondFile, imgPath, NOT_EQUAL_COPY_BY_DATE, rightPath, pathToCopy, redItem)); } else { pathToCopy = BuiltPathToCopy(file, RIGHT); ListCmpFilesCollections.Add(cpmItem.createCmpItem(file, secondFile, imgPath, NOT_EQUAL_COPY_BY_DATE, leftPath)); } } else { ListCmpFilesCollections.Add(cpmItem.createCmpItem(file, secondFile, imgPath, EQUALLY, leftPath)); } //delete this file in rightFiles List <FileInfo> tmp = new List <FileInfo>(rightFiles); tmp.RemoveAt(index); rightFiles = tmp.ToArray(); } else { imgPath = LEFT_ARROW_IMG; pathToCopy = BuiltPathToCopy(file, LEFT); ListCmpFilesCollections.Add(cpmItem.createCmpItem(file, null, imgPath, NOT_EXIST_RIGHT_SIDE, leftPath, pathToCopy)); filesToRightPathCopy.Add(file); } } foreach (FileInfo secondFile in rightFiles) { imgPath = RIGHT_ARROW_IMG; pathToCopy = BuiltPathToCopy(secondFile, RIGHT); ListCmpFilesCollections.Add(cpmItem.createCmpItem(null, secondFile, imgPath, NOT_EXIST_LEFT_SIDE, rightPath, pathToCopy)); filesToLeftPathCopy.Add(secondFile); } foldersCmpList.ItemsSource = ListCmpFilesCollections; }