コード例 #1
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("");
                Console.WriteLine("trrntzip: missing path");
                Console.WriteLine("Usage: trrntzip [OPTIONS] [PATH/ZIP FILES]");
                return;
            }

            for (int i = 0; i < args.Length; i++)
            {
                string arg = args[i];
                if (arg.Length < 2)
                {
                    continue;
                }
                if (arg.Substring(0, 1) != "-")
                {
                    continue;
                }

                switch (arg.Substring(1, 1))
                {
                case "?":
                    Console.WriteLine("TorrentZip.Net v{0}\n", Assembly.GetExecutingAssembly().GetName().Version);
                    Console.WriteLine("Copyright (C) 2016 GordonJ");
                    Console.WriteLine("Homepage : http://www.romvault.com/trrntzip\n");
                    Console.WriteLine("Usage: trrntzip [OPTIONS] [PATH/ZIP FILE]\n");
                    Console.WriteLine("Options:\n");
                    Console.WriteLine("-? : show this help");
                    Console.WriteLine("-s : prevent sub-directory recursion");
                    Console.WriteLine("-f : force re-zip");
                    Console.WriteLine("-c : Check files only do not repair");
                    Console.WriteLine("-l : verbose logging");
                    Console.WriteLine("-v : show version");
                    Console.WriteLine("-g : pause when finished");
                    return;

                case "s":
                    NoRecursion = true;
                    break;

                case "f":
                    ForceReZip = true;
                    break;

                case "c":
                    CheckOnly = true;
                    break;

                case "l":
                    VerboseLogging = true;
                    break;

                case "v":
                    Console.WriteLine("TorrentZip v{0}", Assembly.GetExecutingAssembly().GetName().Version);
                    return;

                case "g":
                    _guiLaunch = true;
                    break;
                }
            }

            tz = new TorrentZip();
            tz.StatusCallBack    = StatusCallBack;
            tz.StatusLogCallBack = StatusLogCallBack;

            for (int i = 0; i < args.Length; i++)
            {
                string arg = args[i];
                if (arg.Length < 2)
                {
                    continue;
                }
                if (arg.Substring(0, 1) == "-")
                {
                    continue;
                }

                // first check if arg is a directory
                if (Directory.Exists(arg))
                {
                    ProcessDir(arg);
                    continue;
                }

                // now check if arg is a directory/filename with possible wild cards.
                string dir = Path.GetDirectoryName(arg);
                if (string.IsNullOrEmpty(dir))
                {
                    dir = Environment.CurrentDirectory;
                }

                string filename = Path.GetFileName(arg);

                DirectoryInfo dirInfo  = new DirectoryInfo(dir);
                FileInfo[]    fileInfo = dirInfo.GetFiles(filename);
                foreach (FileInfo file in fileInfo)
                {
                    string ext = Path.GetExtension(file.FullName);
                    if (!string.IsNullOrEmpty(ext) && (ext.ToLower() == ".zip" || ext.ToLower() == ".7z"))
                    {
                        tz.Process(new IO.FileInfo(file.FullName));
                    }
                }
            }

            if (_guiLaunch)
            {
                Console.WriteLine("Complete.");
                Console.ReadLine();
            }
        }