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); } }
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); }
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)); } } }
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(); }