0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-05-18 11:21:18 +03:00
ParkanPlayground/NResLib/NResExporter.cs

38 lines
1.2 KiB
C#
Raw Normal View History

2024-11-15 20:29:02 +03:00
namespace NResLib;
public class NResExporter
{
public static void Export(NResArchive archive, string directory, string nResPath)
{
var openedFileName = Path.GetFileName(nResPath)!;
var targetDirectoryPath = Path.Combine(directory, openedFileName);
if (!Directory.Exists(targetDirectoryPath))
{
Directory.CreateDirectory(targetDirectoryPath);
}
using var fs = new FileStream(nResPath, FileMode.Open);
foreach (var archiveFile in archive.Files)
{
fs.Seek(archiveFile.OffsetInFile, SeekOrigin.Begin);
var buffer = new byte[archiveFile.FileLength];
fs.ReadExactly(buffer, 0, archiveFile.FileLength);
var extension = Path.GetExtension(archiveFile.FileName);
var fileName = Path.GetFileNameWithoutExtension(archiveFile.FileName);
if (extension == "")
{
extension = ".bin";
}
var targetFilePath = Path.Combine(targetDirectoryPath, $"{archiveFile.Index}_{archiveFile.FileType}_{fileName}{extension}");
2024-11-15 20:29:02 +03:00
File.WriteAllBytes(targetFilePath, buffer);
}
}
}