1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using System;
- using System.IO;
- namespace ResBuilder
- {
- class UIResPacker
- {
- public readonly string inputPath;
- public readonly string outputFile;
- public UIResPacker(string input , string output)
- {
- this.inputPath = input;
- this.outputFile = Path.Combine(output , "ur.bin");
- }
- string GetWriteFileName(string fp)
- {
- if (fp.StartsWith(inputPath))
- {
- fp = fp.Substring(fp.IndexOf("res"));
- fp = fp.Replace('\\', '/');
- }
- return fp;
- }
- public void Pack()
- {
- var files = Directory.GetFiles(inputPath, "*.*", SearchOption.AllDirectories);
- files = Array.FindAll<string>(files, (str) => str.EndsWith(".bin") || str.EndsWith(".png") || str.EndsWith(".jpg"));
- using (var fs = new FileStream(outputFile, FileMode.Create))
- {
- var bw = new BinaryWriter(fs);
- bw.Write(files.Length);
- foreach (var f in files)
- {
- var bytes = File.ReadAllBytes(f);
- bw.Write(GetWriteFileName(f));
- bw.Write(bytes.Length);
- bw.Write(bytes);
- }
- }
- }
- }
- }
|