예제 #1
0
        public void ClearUnusedFiles()
        {
            List <string> filesToRemove = new List <string>();

            foreach (string dir in Directory.EnumerateDirectories(PathRouter.SandboxPath))
            {
                foreach (string file in Directory.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories))
                {
                    string path = PathRouter.NormalizePath(file);
                    string name = path.Remove(0, PathRouter.SandboxPath.Length);
                    if (!manifest.query.ContainsKey(name))
                    {
                        filesToRemove.Add(path);
                    }
                }
            }

            foreach (string file in filesToRemove)
            {
                File.Delete(file);
                string name = file.Remove(0, PathRouter.SandboxPath.Length);
                sandboxFiles.Remove(name);
                HotfixLog.Log("Remove unused file: " + name);
            }
        }
예제 #2
0
    public static void Generate(BuildTarget buildTarget)
    {
        string       path     = PathRouter.ProductPath + buildTarget;
        FileManifest manifest = new FileManifest();

        foreach (string file in Directory.EnumerateFiles(
                     path,
                     "*.*",
                     SearchOption.AllDirectories))
        {
            if (Path.GetExtension(file) == ".manifest")
            {
                continue;
            }

            string name = PathRouter.NormalizePath(file)
                          .Remove(0, path.Length + 1);
            byte[] bytes = File.ReadAllBytes(file);
            string md5   = FileManager.GetMd5Hash(bytes);
            manifest.files.Add(new FileEntry()
            {
                name = name,
                md5  = md5,
                size = bytes.Length
            });
        }

        File.WriteAllText(
            path + '/' + PathRouter.FileManifest,
            JsonUtility.ToJson(manifest, true),
            Encoding.UTF8);

        Debug.Log("Generate File Manifest for " + buildTarget);
    }
예제 #3
0
 void CollectSandboxFiles()
 {
     sandboxFiles = new HashSet <string>();
     foreach (string dir in Directory.EnumerateDirectories(PathRouter.SandboxPath))
     {
         foreach (string file in Directory.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories))
         {
             string path = PathRouter.NormalizePath(file);
             sandboxFiles.Add(path.Remove(0, PathRouter.SandboxPath.Length));
         }
     }
 }
예제 #4
0
        public override async Task Test()
        {
            string folder = Application.dataPath + "/Resources/Prefabs";

            foreach (string file in Directory.EnumerateFiles(folder, "*.prefab", SearchOption.AllDirectories))
            {
                string path = PathRouter.NormalizePath(file)
                              .Replace(folder, "Prefabs")
                              .Replace(".prefab", "");
                ResLog.Log(path);
            }

            await TestAsyncLoad();
            await TestLoad();
        }