Example #1
0
        //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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }