private static void AddFiles(ArchiveCreator creator, string srcDirecory) { foreach (string file in Directory.GetFiles(srcDirecory)) { creator.AddFile(file); } foreach (string directory in Directory.GetDirectories(srcDirecory)) { AddFiles(creator, directory); } }
private void RepackData(string gameDirectory, string workingDirectory, string file) { string sourceDirectory = Path.Combine(workingDirectory, Path.GetFileName(file) + ".extracted"); string infoDirectory = Path.Combine(workingDirectory, Path.GetFileName(file) + ".info"); string targetFile = Path.Combine(gameDirectory, file); if (File.Exists(targetFile)) { File.Delete(targetFile); } using (FileStream fs = File.Create(targetFile)) { IChunkDataWrapper data = new StreamChunkDataWrapper(fs); ArchiveCreator creator = new ArchiveCreator(data, sourceDirectory, infoDirectory); AddFiles(creator, sourceDirectory); creator.WriteIndex(); } }