public DialogResult AnalyzeFolderPair(SyncTask curTask) { DialogResult result = DialogResult.None; try { this.NotifyUIs("Analyzing " + curTask.Name + "..."); Detector detector = new Detector(_metaDataDir, curTask); detector.CompareFolders(); if (!detector.IsSynchronized()) { if (!CheckSufficientDiskSpace(curTask.Source.Substring(0, 1), detector.TgtDirtySize, false) || !CheckSufficientDiskSpace(curTask.Target.Substring(0, 1), detector.SrcDirtySize, false)) { throw new Exception("Insufficient disk space"); } _previewReconciler = new Reconciler(detector.SourceList, detector.TargetList, curTask, _metaDataDir); _previewReconciler.Preview(); FolderDiffForm form = new FolderDiffForm(_previewReconciler.PreviewFilesList, _previewReconciler.PreviewFoldersList, curTask); this.NotifyUIs("Analysis completed"); result = form.ShowDialog(); } else { this.NotifyUIs("Analysis completed"); MessageBox.Show("Task: " + curTask.Name + "\n\n" + "There are no differences between the source and target folders contents.", "SyncSharp", MessageBoxButtons.OK, MessageBoxIcon.Information); this.UpdateSyncTaskResult(curTask, "Successful"); } } catch (Exception e) { Logger.LogFileLocation = _metaDataDir + @"\"; Logger.LogFileName = Logger.LogFileLocation + curTask.Name + ".log"; Logger.WriteErrorLog(e.Message); this.UpdateSyncTaskResult(curTask, "Unsuccessful"); } this.UpdateSyncTaskTime(curTask, DateTime.Now.ToString()); return result; }