XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEExtension.NetCore.BufferExtension;

namespace XFEExtension.NetCore.FileExtension.XFEPackage;

/// <summary>
/// 打包目录
/// </summary>
public class XFEPackagedDirectory : XFEPackageBase
{
    /// <summary>
    /// 打包的文件
    /// </summary>
    public List<XFEPackagedFile> PackagedFiles { get; set; } = [];
    /// <summary>
    /// 打包的目录
    /// </summary>
    public List<XFEPackagedDirectory> PackagedDirectories { get; set; } = [];

    /// <summary>
    /// 打包
    /// </summary>
    /// <returns></returns>
    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();
    }

    /// <summary>
    /// 解包
    /// </summary>
    /// <param name="path">指定目录</param>
    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));
    }
}