/// <summary> /// 把所有的要检测的文件夹放到虚拟目录 /// </summary> /// <param name="folder"></param> /// <param name="progress"></param> /// <returns></returns> private List <EncodingScrutatorFolder> FolderToVirtualDirectory(List <string> folder, EncodingScrutatorProgress progress) { var encodingScrutatorFolder = new List <EncodingScrutatorFolder>(); foreach (var temp in folder) { encodingScrutatorFolder.Add( new EncodingScrutatorFolder(new DirectoryInfo(temp), _whiteList, _includeFile) { Progress = progress, SitpulationEncodingSetting = new SitpulationEncodingSetting { SitpulationEncoding = SitpulationEncoding } }); } _encodingScrutatorFolder = new EncodingScrutatorFolder(new DirectoryInfo(Environment.SystemDirectory)) { Folder = encodingScrutatorFolder }; foreach (var temp in encodingScrutatorFolder) { temp.Parent = _encodingScrutatorFolder; } return(encodingScrutatorFolder); }
//规范编码之前,确保你已经管理所有代码 /// <summary> /// 规范编码 /// </summary> public void WriteCriterionEncoding() { var progress = new EncodingScrutatorProgress(); var count = 0; progress.WriteSitpulationFileChanged += (s, e) => { var str = new StringBuilder(); str.Append(e.GetEncodingScrutatorFileDirectory()); str.Insert(0, "正在转换编码\r\n"); Circular = str.ToString(); }; progress.ExceptChanged += (s, e) => { count++; Circular += "\r\n转换出现异常" + e.Message; }; new Task(() => { WriteFolderEncoding.WriteSitpulationEncoding(EncodingScrutatorFolder, progress, SitpulationEncoding); Circular = "转换完成\r\n "; if (count > 0) { Circular += "转换失败" + count; } else { MessageBox.Show("转换完成", "编码规范工具"); PrintConformDispatcherSynchronizationContext(() => { Closing?.Invoke(this, null); }); } FailWriteSitpulation(); }).Start(); }
/// <summary> /// 检查多个文件夹文件编码 /// </summary> /// <param name="folder"></param> public void InspectFolderEncoding(List <string> folder) { var progress = new EncodingScrutatorProgress(); progress.ProgressChanged += Progress_ProgressChanged; ParseAccount(); List <EncodingScrutatorFolder> encodingScrutatorFolder = FolderToVirtualDirectory(folder, progress); //}; new Task(() => { foreach (var temp in encodingScrutatorFolder) { temp.InspectFolderEncoding(); } //通知完成 progress.Report(null); }).Start(); }