示例#1
0
        static void Main(string[] args)
        {
            string Path   = System.IO.Directory.GetCurrentDirectory();
            string Target = System.IO.Directory.GetCurrentDirectory() + "\\FastDL";

            if (System.IO.Directory.Exists(Target))
            {
                System.IO.Directory.Delete(Target, true);
            }

            FileManager FM = new FileManager(Path);
            string      NewFile;
            int         Depth;
            int         cnt = 0;

            foreach (File file in FM.Files)
            {
                if (Ignore(file.Ext) || !file.IsWithinDirectory("addons"))
                {
                    continue;
                }

                NewFile = "";
                Depth   = 0;

                foreach (string folder in file.Path)
                {
                    if (Depth == 0 && folder.ToLower() == "addons")
                    {
                        Depth++;
                        continue;
                    }
                    else if (Depth == 1)
                    {
                        Depth++;
                    }
                    else if (Depth == 2)
                    {
                        NewFile += folder + "/";
                    }
                }

                Console.Out.WriteLine(Target + NewFile + file.Name + file.Ext + " -> " + file.GetFullPath());
                FM.Copy(Target + "\\" + NewFile + file.Name + file.Ext, file.GetFullPath());
                FM.Compress(Target + "\\" + NewFile + file.Name + file.Ext);
                cnt++;
            }

            System.Console.Out.WriteLine("\nDONE! " + cnt + " files copied and compressed!");
            System.Console.In.ReadLine();
        }
示例#2
0
        static void Main(string[] args)
        {
            string Path = System.IO.Directory.GetCurrentDirectory();
            string Target = System.IO.Directory.GetCurrentDirectory() + "\\FastDL";

            if (System.IO.Directory.Exists(Target))
                System.IO.Directory.Delete(Target, true);

            FileManager FM = new FileManager(Path);
            string NewFile;
            int Depth;
            int cnt = 0;

            foreach(File file in FM.Files)
            {
                if (Ignore(file.Ext) || !file.IsWithinDirectory("addons"))
                    continue;

                NewFile = "";
                Depth = 0;

                foreach (string folder in file.Path)
                {
                    if (Depth == 0 && folder.ToLower() == "addons")
                    {
                        Depth++;
                        continue;
                    }
                    else if (Depth == 1)
                    {
                        Depth++;
                    }
                    else if (Depth==2)
                    {
                        NewFile += folder+"/";
                    }
                }

                Console.Out.WriteLine(Target + NewFile + file.Name + file.Ext + " -> " + file.GetFullPath());
                FM.Copy(Target + "\\" + NewFile + file.Name + file.Ext, file.GetFullPath());
                FM.Compress(Target + "\\" + NewFile + file.Name + file.Ext);
                cnt++;
            }

            System.Console.Out.WriteLine("\nDONE! "+cnt+" files copied and compressed!");
            System.Console.In.ReadLine();
        }
示例#3
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage: <addons path>");
                Console.ReadLine();
                return;
            }

            string path = args[0].Replace("\"", "");

            if (!Directory.Exists(path))
            {
                Console.WriteLine("Invalid Directory: " + path);
                Console.ReadLine();
                return;
            }

            string target = Directory.GetCurrentDirectory() + @"\" + (new DirectoryInfo(path).Name) + "_out";

            if (Directory.Exists(target))
            {
                Directory.Delete(target, true);
            }

            Directory.CreateDirectory(target + @"\lua\autorun\server\");

            StreamWriter rf = new StreamWriter(target + @"\lua\autorun\server\resource_" + Math.Floor((DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds) + ".lua");
            FileManager  fm = new FileManager(path);
            FileInfo     fi;
            int          total     = 0;
            int          useless   = 0;
            long         ignorelen = 0;
            long         beforelen = 0;
            long         afterlen  = 0;

            foreach (File file in fm.Files)
            {
                if (!IsValidFile(file.Ext))
                {
                    continue;
                }

                string relitivepath = "";
                foreach (string folder in file.Path)
                {
                    if (IsValidDir(folder))
                    {
                        break;
                    }

                    relitivepath = relitivepath + @"\" + folder;
                }

                string fullpath = file.GetFullPath();
                relitivepath = fullpath.Replace(relitivepath.Substring(1), "");
                string nicepath = relitivepath.Substring(1).Replace(@"\", "/");

                if ((fullpath.Substring(fullpath.Length - 9) == ".xbox.vtx") || (fullpath.Substring(fullpath.Length - 7) == ".sw.vtx"))
                {
                    Console.WriteLine("Ignored -> " + nicepath);
                    fi         = new FileInfo(fullpath);
                    ignorelen += fi.Length;
                    useless++;
                    continue;
                }

                if (file.Ext != ".bsp")
                {
                    rf.WriteLine("resource.AddSingleFile'" + nicepath + "'");
                }

                fm.Copy(target + relitivepath, fullpath);

                fi         = new FileInfo(target + relitivepath);
                beforelen += fi.Length;

                Console.WriteLine("Copied -> " + nicepath);

                fm.Compress(target + relitivepath);

                fi        = new FileInfo(target + relitivepath + ".bz2");
                afterlen += fi.Length;

                Console.WriteLine("Compressed -> " + nicepath + ".bz2");

                total++;
            }

            rf.Close();

            Console.WriteLine("\n\nComplete:");
            Console.WriteLine("   Files Compressed: " + total);
            Console.WriteLine("   Files Ignored: " + useless);
            Console.WriteLine("   Uncompressed Size: " + beforelen / 1024 / 1024 + "mb");
            Console.WriteLine("   Compressed Size: " + afterlen / 1024 / 1024 + "mb");
            Console.WriteLine("   Total Saved: " + ((ignorelen + beforelen) - afterlen) / 1024 / 1024 + "mb");
            Console.ReadLine();
        }