private async void BtnConflict_Analyze_Click(object sender, EventArgs e) { try { this.SetNameConflictButtonStatus(false); StartNewTask(); NameConflictParameter param = GetNameConflictParameter(); NameConflict nameConflictThreading = new NameConflict(this.log, this.tokenSource, param); task = nameConflictThreading.Run(); await task; // } catch (System.OperationCanceledException ex) { log.RecordError(ex.Message); } catch (Exception ex) { log.RecordError(ex.Message); //this.SetFolderButtonStatus(true); } finally { this.SetNameConflictButtonStatus(true); } }
private bool NameConflictPathCheck(NameConflictParameter param) { DirectoryInfo originalFold = new DirectoryInfo(param.OriginalDirectory); if (!originalFold.Exists) { log.Log("Original Path is not exists."); return(false); } return(true); }
private NameConflictParameter GetNameConflictParameter() { NameConflictParameter param = new NameConflictParameter(); param.OriginalDirectory = this.txtConflict_OriginalDir.Text.Trim(); param.OriginalExtension = this.txtConflict_OriginalFileExtension.Text.Trim(); param.DestinationExtension = this.txtConflict_OutputFileExtension.Text.Trim(); param.IsShowFolder = this.ckbConflict_showAllFolder.Checked; return(param); }
public override void RunSub(ICloneable _threadParameter) { JudgeTaskCancelFlag(); DirectoryInfo originalFold = new DirectoryInfo(((NameConflictParameter)_threadParameter).OriginalDirectory); log.Log("Analyzing [" + originalFold.FullName + "]"); var originalfiles = originalFold.GetFiles().Where(s => { bool rtn = false; var extensionlist = ((NameConflictParameter)_threadParameter).OriginalExtension.Split(';'); foreach (string item in extensionlist) { rtn = rtn || s.Name.ToLower().EndsWith("." + item.ToLower()); } return(rtn); //s.Name.EndsWith(".exe") || s.Name.EndsWith(".doc") || s.Name.EndsWith(".docx") } ); List <NameConflictResult> listNameConflictResult = new List <NameConflictResult>(); IEnumerable <FileInfo> ListAllFile = (IEnumerable <FileInfo>)originalfiles.Where <FileInfo>(s => { return(true); }); // Check OrigLinal First foreach (FileInfo file in originalfiles) { JudgeTaskCancelFlag(); //Thread.Sleep(1000); // remove self first ListAllFile = (IEnumerable <FileInfo>)ListAllFile.Except(new FileInfo[] { file }); var conflictList = ListAllFile.Where(item => { return(Path.GetFileNameWithoutExtension(file.Name) == Path.GetFileNameWithoutExtension(item.Name)); }); if (conflictList.Count() > 0) { NameConflictResult conflictresult = new NameConflictResult(); conflictresult.OriginalFileName = file.Name; conflictresult.Path = ((NameConflictParameter)_threadParameter).OriginalDirectory; conflictresult.ExtensionName = Path.GetExtension(file.Name); foreach (FileInfo s in conflictList) { conflictresult.NameConflictFileName += s.Name + " ; "; // remove conflict file ListAllFile = (IEnumerable <FileInfo>)ListAllFile.Except(new FileInfo[] { s }); } listNameConflictResult.Add(conflictresult); } } if (((NameConflictParameter)_threadParameter).IsShowFolder) { if (listNameConflictResult.Count() == 0) { // none conflict files under this folder NameConflictResult conflictresult = new NameConflictResult(); conflictresult.OriginalFileName = "OK"; conflictresult.Path = ((NameConflictParameter)_threadParameter).OriginalDirectory; conflictresult.NameConflictFileName = "none conflicts"; listNameConflictResult.Add(conflictresult); } } log.DeleteLog(2); LogConflictResult(listNameConflictResult); foreach (DirectoryInfo dir in originalFold.GetDirectories()) { NameConflictParameter paramSub = (NameConflictParameter)((NameConflictParameter)_threadParameter).Clone(); paramSub.OriginalDirectory = dir.FullName; RunSub(paramSub); } }
private void AnalyzeNameConflictThreadSub(NameConflictParameter param) { //NameConflictPathCheck(param.OriginalDirectory); }