Example #1
0
 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);
     }
 }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
            }
        }
Example #5
0
 private void AnalyzeNameConflictThreadSub(NameConflictParameter param)
 {
     //NameConflictPathCheck(param.OriginalDirectory);
 }