Inheritance: IOutputController
Ejemplo n.º 1
0
        // CUIモード
        static int CUIExec(bool q, List <string> files)
        {
            IOutputController Output = new CUIOutput(q);

            if (files.Count == 0)
            {
                Console.WriteLine(Properties.Resources.NOINPUTFILE);
                return(-5);
            }
            try {
                Directory.CreateDirectory(Path.GetTempPath());
            }
            catch (Exception) {
                Console.WriteLine(String.Format(Properties.Resources.FAIL_TMPFOLDER, Path.GetTempPath()));
                return(-7);
            }

            int failnum = 0;

            var outFiles = new System.Collections.Specialized.StringCollection();

            for (int i = 0; i < files.Count / 2; ++i)
            {
                string file = Path.GetFullPath(files[2 * i]);
                string dir;
                if (Properties.Settings.Default.workingDirectory == "file")
                {
                    dir = Path.GetDirectoryName(file);
                }
                else if (Properties.Settings.Default.workingDirectory == "current")
                {
                    dir = Directory.GetCurrentDirectory();
                }
                else
                {
                    dir = Path.GetTempPath();
                }
                string tmpTeXFileName = TempFilesDeleter.GetTempFileName(Path.GetExtension(file), dir);
                if (tmpTeXFileName == null)
                {
                    Console.WriteLine(String.Format(Properties.Resources.FAIL_TMPFILE, Path.GetTempPath()));
                    return(-6);
                }
                tmpTeXFileName = Path.Combine(dir, tmpTeXFileName);
                // 一時フォルダにコピー
                File.Copy(file, tmpTeXFileName, true);
                (new FileInfo(tmpTeXFileName)).Attributes = FileAttributes.Normal;
                var output = Path.GetFullPath(files[2 * i + 1]);
                // 変換!
                try {
                    using (var converter = new Converter(Output, tmpTeXFileName, output)) {
                        converter.AddInputPath(Path.GetDirectoryName(file));
                        if (!converter.Convert())
                        {
                            ++failnum;
                        }
                        else
                        {
                            outFiles.AddRange(converter.OutputFileNames.ToArray());
                        }
                    }
                    if (Properties.Settings.Default.setFileToClipBoard)
                    {
                        Clipboard.SetFileDropList(outFiles);
                    }
                }
                catch (Exception e) { Console.WriteLine(e.Message); }
            }
            return(failnum);
        }
Ejemplo n.º 2
0
        // CUIモード
        static int CUIExec(bool q, List<string> files) {
            IOutputController Output = new CUIOutput(q);
            if (files.Count == 0) {
                Console.WriteLine(Properties.Resources.NOINPUTFILE);
                return -5;
            }
            try {
                Directory.CreateDirectory(Path.GetTempPath());
            }
            catch (Exception) {
                Console.WriteLine(String.Format(Properties.Resources.FAIL_TMPFOLDER, Path.GetTempPath()));
                return -7;
            }

            int failnum = 0;

            var outFiles = new System.Collections.Specialized.StringCollection();
            for (int i = 0; i < files.Count / 2; ++i) {
                string file = Path.GetFullPath(files[2 * i]);
                string dir;
                if (Properties.Settings.Default.workingDirectory == "file") dir = Path.GetDirectoryName(file);
                else if (Properties.Settings.Default.workingDirectory == "current") dir = Directory.GetCurrentDirectory();
                else dir = Path.GetTempPath();
                string tmpTeXFileName = TempFilesDeleter.GetTempFileName(Path.GetExtension(file), dir);
                if (tmpTeXFileName == null) {
                    Console.WriteLine(String.Format(Properties.Resources.FAIL_TMPFILE, Path.GetTempPath()));
                    return -6;
                }
                tmpTeXFileName = Path.Combine(dir, tmpTeXFileName);
                // 一時フォルダにコピー
                File.Copy(file, tmpTeXFileName, true);
                (new FileInfo(tmpTeXFileName)).Attributes = FileAttributes.Normal;
                var output = Path.GetFullPath(files[2 * i + 1]);
                // 変換!
                try {
                    using (var converter = new Converter(Output, tmpTeXFileName, output)) {
                        converter.AddInputPath(Path.GetDirectoryName(file));
                        if (!converter.Convert()) ++failnum;
                        else outFiles.AddRange(converter.OutputFileNames.ToArray());
                    }
                    if (Properties.Settings.Default.setFileToClipBoard) Clipboard.SetFileDropList(outFiles);
                }
                catch (Exception e) { Console.WriteLine(e.Message); }
            }
            return failnum;
        }