为了从资源上优化安装包的大小,写了一个工具
点击查找,列出所以文件,并按从大到小的顺序排序
先上一下效果图
/// <summary>
/// 定义文件结构体
/// </summary>
public struct FileAttribute
{
public string path; //路径
public long size; //文件大小
public string sizeStr; //转成MB后的显示值
}
/// <summary>
/// 排序规则
/// </summary>
/// <param name="obj1"></param>
/// <param name="obj2"></param>
/// <returns></returns>
private int SortFileAttrCompare(FileAttribute obj1, FileAttribute obj2)
{
int res = 0;
if (obj1.size > obj2.size)
{
res = -1;
}
else if (obj1.size < obj2.size)
{
res = 1;
}
return res;
}
/// <summary>
/// 搜索文件
/// </summary>
void SearchResInfo()
{
fileList.Clear();
fbxSortList.Clear();
var allObjects = AssetDatabase.GetAllAssetPaths();
int i = 0;
foreach (var path in allObjects)
{
EditorUtility.DisplayProgressBar("查找中", path, (float)i / (float)allObjects.Length);
System.IO.FileInfo file = new System.IO.FileInfo(path);
if(file != null && file.Exists)
{
FileAttribute fileAttr;
fileAttr.path = path;
fileAttr.size = file.Length;
float tempFileLength = 0;
//转成MB
if(file.Length > 1024)
tempFileLength = file.Length / 1024.0f / 1024.0f;
if(tempFileLength > 0)
{
int strPos = tempFileLength.ToString().IndexOf(".");
fileAttr.sizeStr = tempFileLength.ToString().Substring(0, strPos + 3) + " MB";
}
else
{
fileAttr.sizeStr = "0.00 MB";
}
fileList.Add(fileAttr);
}
i++;
}
fbxSortList = new List<FileAttribute>(fileList);
fbxSortList.Sort(SortFileAttrCompare);
EditorUtility.ClearProgressBar();
}
