using XFEExtension.NetCore.BufferExtension;
namespace XFEExtension.NetCore.FileExtension.XFEPackage;
///
/// 打包目录
///
public class XFEPackagedDirectory : XFEPackageBase
{
///
/// 打包的文件
///
public List PackagedFiles { get; set; } = [];
///
/// 打包的目录
///
public List PackagedDirectories { get; set; } = [];
///
/// 打包
///
///
public byte[] Package()
{
var buffer = new XFEBuffer();
foreach (var packagedFile in PackagedFiles)
buffer.Add(packagedFile.Name, packagedFile.Data);
foreach (var packagedDirectory in PackagedDirectories)
buffer.Add($"D|{packagedDirectory.Name}", packagedDirectory.Package());
return buffer.ToBuffer();
}
///
/// 解包
///
/// 指定目录
public void UnPackage(string path)
{
Directory.CreateDirectory(path);
foreach (var packagedFile in PackagedFiles)
File.WriteAllBytes(Path.Combine(path, packagedFile.Name), packagedFile.Data);
foreach (var packagedDirectory in PackagedDirectories)
packagedDirectory.UnPackage(Path.Combine(path, packagedDirectory.Name));
}
}