You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CrowdControl/Assets/BuildReport/Scripts/Editor/Utility/BRT_LibCacheUtil.cs

68 lines
1.7 KiB
C#

1 month ago
using UnityEngine;
using UnityEditor;
using System.IO;
public static class BRT_LibCacheUtil
{
// assetPath is expected to start with "Assets/"
//
// since this function calls AssetDatabase.AssetPathToGUID(),
// it can only be called from the Unity main thread
//
public static long GetImportedFileSize(string assetPath)
{
long result = -1;
assetPath = BuildReportTool.Util.MyHtmlDecode(assetPath);
// files in "StreamingAssets" folder do not get imported
// in the 1st place, so skip them
if (BuildReportTool.Util.IsFileStreamingAsset(assetPath))
{
return -1;
}
// files like Thumbs.db or .DS_Store files do not get imported
if (BuildReportTool.Util.IsUselessFile(assetPath))
{
return -1;
}
// Unix-style hidden files do not get imported
if (BuildReportTool.Util.IsFileAUnixHiddenFile(assetPath))
{
return -1;
}
if (!string.IsNullOrEmpty(assetPath))
{
string guid = AssetDatabase.AssetPathToGUID(assetPath);
if (guid.Length < 2)
{
//Debug.Log(assetPath + " has no guid? value is \"" + guid + "\"");
return -1;
}
string assetImportedPath = Path.GetFullPath(Application.dataPath + "../../Library/cache/" + guid.Substring(0, 2) + "/" + guid);
if (File.Exists(assetImportedPath))
{
result = BuildReportTool.Util.GetFileSizeInBytes(assetImportedPath);
}
else
{
//Debug.Log(assetPath + " not found: " + assetImportedPath);
assetImportedPath = Path.GetFullPath(Application.dataPath + "../../Library/metadata/" + guid.Substring(0, 2) + "/" + guid);
if (File.Exists(assetImportedPath))
{
result = BuildReportTool.Util.GetFileSizeInBytes(assetImportedPath);
}
}
}
return result;
}
}