using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using UnityEditor;
using UnityEngine;
public class CreateABCompare
{
[MenuItem("AB包工具/创建对比文件")]
public static void CreateABFile()
{
//获取文件夹信息
DirectoryInfo directory = Directory.CreateDirectory(Application.dataPath + "/AB/PC/");
//获取该目录下所有文件信息
FileInfo[] fileInfos = directory.GetFiles();
//用于存储信息的字符串
string abCompaerInfo = "";
foreach (FileInfo info in fileInfos)
{
if (info.Extension == "")//文件后缀,没有后缀为AB包
{
//拼接一个AB包信息
abCompaerInfo += info.Name + " " + info.Length + " " + Get_md5(info.FullName);
abCompaerInfo += "|";//分割
}
}
//去除最后一个“|”
abCompaerInfo = abCompaerInfo.Substring(0, abCompaerInfo.Length - 1);
//存储拼接好的AB包资源信息
File.WriteAllText(Application.dataPath + "/AB/PC/ABCompareInfo.txt", abCompaerInfo);
AssetDatabase.Refresh();//刷新
Debug.Log("AB包对比文件生成成功");
}
private static string Get_md5(string filePath)
{
//将文件以流的形式打开
using (FileStream file = new FileStream(filePath, FileMode.Open))
{
//声名一个MD5对象 用于生成MD5码
MD5 md5 = new MD5CryptoServiceProvider();
//利用API得到数据的MD5码 16个字节数组
byte[] md5Info = md5.ComputeHash(file);
//关闭文件流
file.Close();
//把16个字节转化为16进制 减小MD5码长度
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < md5Info.Length; i++)
{
sb.Append(md5Info[i].ToString("x2"));
}
return sb.ToString();
}
}
}
UnityAB包 创建资源对比文件
最新推荐文章于 2024-07-29 13:46:39 发布