获取Unity的相对路径:
/// <summary>
/// 获取Unity中的相对路径
/// </summary>
/// <param name="fullPath"></param>
/// <returns></returns>
public static string GetRelativePath(string fullPath)
{
string path = GetRightFormatPath(fullPath);
int index = path.IndexOf("Assets", StringComparison.Ordinal);
return path.Substring(index);
}
/// <summary>
/// 替换路径中的反斜杠为正斜杠
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static string GetRightFormatPath(string path)
{
return path.Replace("\\", "/");
}
递归删除空目录:
/// <summary>
/// 删除空文件夹
/// </summary>
/// <param name="directoryPath"></param>
public static void DeleteEmptyDirectories(string directoryPath)
{
if (!Directory.Exists(directoryPath))
{
return;
}
// Delete empty subdirectories first
string[] subDirectories = Directory.GetDirectories(directoryPath);
foreach (string subDirectory in subDirectories)
{
DeleteEmptyDirectories(subDirectory);
}
// Delete current directory if it is empty
string[] files = Directory.GetFiles(directoryPath);
string[] directories = Directory.GetDirectories(directoryPath);
if (files.Length == 0 && directories.Length == 0)
{
Debug.Log("已删除目录:" + directoryPath);
FileUtil.DeleteFileOrDirectory(directoryPath);
FileUtil.DeleteFileOrDirectory($"{directoryPath}.meta"); // Delete the corresponding .meta file as well
AssetDatabase.Refresh();
}
}