//private PairFile GetPairFile(LibreOfficeParameter librparam, FileInfo file, bool IsRename, byte Index) //{ // PairFile pairFile = new PairFile(file.FullName); // // pairFile.originalFile = new FileInfo(); // pairFile.outputDir = librparam.OutputDirectory; // pairFile.outputFileExtension = librparam.OutputFileExtension; // pairFile.IsRename = IsRename; // pairFile.serialNumber = Index; // pairFile.CreateSerialNumberFile(); // return pairFile; //} private string GetCommand(LibreOfficeParameter librparam, PairFile file) { string command = "\""; command += librparam.Path + "\" "; command += librparam.Command + " "; command += librparam.OutputFileExtension + " "; command += "\"" + file.GetRightOriginalName() + "\" "; command += " --outdir \"" + librparam.OutputDirectory + "\""; return(command); }
private static PairFile GetPairFile(CheckFileParameter librparam, FileInfo file, bool IsRename, byte Index) { PairFile pairFile = new PairFile(file.FullName); // pairFile.originalFile = new FileInfo(); pairFile.outputDir = librparam.OutputDirectory; pairFile.outputFileExtension = librparam.OutputFileExtension; pairFile.IsRename = IsRename; pairFile.serialNumber = Index; // pairFile.CreateSerialNumberFile(); return(pairFile); }
private CheckResult AnalyzeandReturnCheckResult(FileInfo file, List <PairFile> convertingFileList, IEnumerable <FileInfo> destinationfiles) { CheckResult checkresult = new CheckResult(); PairFile pFile = null; try { pFile = convertingFileList.First(s => s.originalFile.Name == file.Name); } catch (InvalidOperationException ex) { // no equal item } catch (Exception ex) { // others bug } if (pFile != null) { // file that LibreOffice support. checkresult.OriginalExtension = Path.GetExtension(pFile.originalFile.Name); checkresult.OriginalFileSize = pFile.originalFile.Length; checkresult.OriginalFileNameWithExtension = Path.GetFileNameWithoutExtension(pFile.originalFile.Name); checkresult.OriginalPath = pFile.originalFile.Directory.FullName; FileInfo outputFile; try { outputFile = destinationfiles.First(f => Path.GetFileNameWithoutExtension(f.Name) == Path.GetFileNameWithoutExtension(pFile.outputFileName)); if (outputFile != null) { checkresult.DestinationExtension = Path.GetExtension(outputFile.Name); checkresult.DestinationFileSize = outputFile.Length; checkresult.DestinationFileNameWithExtension = Path.GetFileNameWithoutExtension(outputFile.Name); checkresult.DestinationPath = outputFile.Directory.FullName; checkresult.isValid = true; } } catch (InvalidOperationException ex) { // no equal item } catch (Exception ex) { } } else { //Files that LibreOffice doesn't support checkresult.OriginalExtension = Path.GetExtension(file.Name); checkresult.OriginalFileSize = file.Length; checkresult.OriginalFileNameWithExtension = Path.GetFileNameWithoutExtension(file.Name); checkresult.OriginalPath = file.Directory.FullName; FileInfo outputFile; try { outputFile = destinationfiles.First(f => Path.GetFileNameWithoutExtension(f.Name) == Path.GetFileNameWithoutExtension(file.Name)); if (outputFile != null) { checkresult.DestinationExtension = Path.GetExtension(outputFile.Name); checkresult.DestinationFileSize = outputFile.Length; checkresult.DestinationFileNameWithExtension = Path.GetFileNameWithoutExtension(outputFile.Name); checkresult.DestinationPath = outputFile.Directory.FullName; checkresult.isValid = (file.Name == outputFile.Name); } } catch (InvalidOperationException ex) { // no equal item } catch (Exception ex) { } } return(checkresult); }
public static List <PairFile> GetPairFileList(CheckFileParameter param) { List <PairFile> pairFileList = new List <PairFile>(); DirectoryInfo originalFold = new DirectoryInfo(param.OriginalDirectory); DirectoryInfo destinationFold = new DirectoryInfo(param.OutputDirectory); if (!originalFold.Exists) { return(pairFileList); } if (!destinationFold.Exists) { return(pairFileList); } // //Get original files list var originalFileList = originalFold.GetFiles().Where(s => { bool rtn = false; var extensionlist = param.OriginalExtension.Split(';'); foreach (string item in extensionlist) { rtn = rtn || s.Name.ToLower().EndsWith("." + item.ToLower()); } return(rtn); }); //Get LibreOffice support list var LibreOfficeSupportFileList = originalFold.GetFiles().Where(s => { bool rtn = false; var extensionlist = param.AllExtensionOfLibreOfficeSupporting.Split(';'); foreach (string item in extensionlist) { rtn = rtn || s.Name.ToLower().EndsWith("." + item.ToLower()); } return(rtn); }); //Create converting File List while (originalFileList.Count() > 0) // (FileInfo item in originalFileList) { FileInfo file = originalFileList.First(); // originalFileList = originalFileList.Except(new FileInfo[] { file }, new FileInfoComparer()); IEnumerable <FileInfo> result = LibreOfficeSupportFileList.Where(s => { return(Path.GetFileNameWithoutExtension(file.Name) == Path.GetFileNameWithoutExtension(s.Name)); }); originalFileList = originalFileList.Except(result, new FileInfoComparer()); if (result.Count() == 1) { //no conflict //reduce originalFileList PairFile pairFile = GetPairFile(param, result.First(), false, 0); pairFileList.Add(pairFile); } else { //result.Count() must >1 , no possible it is < 1 //conflict happens byte index = 1; foreach (FileInfo item in result) { PairFile pairFile = GetPairFile(param, item, true, index); //pairFile.CreateSerialNumberFile(); pairFileList.Add(pairFile); index += 1; } } } return(pairFileList); }