using System.IO;
using UnityEditor;
using UnityEngine;
/// <summary>
/// 清空某个文件夹下的所有文件
/// </summary>
public class ClearFolderEditor
{
private static string folderPath = "Assets/StreamingAssets/PlayerBinaryData"; // 要清空的文件夹路径
[MenuItem("UnityTool/Clear StreamingAssets")]//菜单扩展栏名称
private static void TriggerEffect()
{
ClearConsoleLog();
ClearDirectory(folderPath);
}
private static void ClearConsoleLog()
{
var logEntries = System.Type.GetType("UnityEditor.LogEntries, UnityEditor.dll");
//清空控制台的打印日志,可有可无
var clearMethod = logEntries.GetMethod("Clear", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
clearMethod.Invoke(null, null);
}
private static void ClearDirectory(string path)
{
DirectoryInfo directory = new DirectoryInfo(path);
if (directory.Exists)
{
FileInfo[] files = directory.GetFiles();
foreach (FileInfo file in files)
{
file.Delete();
}
DirectoryInfo[] subDirectories = directory.GetDirectories();
foreach (DirectoryInfo subDirectory in subDirectories)
{
subDirectory.Delete(true);
}
//刷新编辑器
AssetDatabase.Refresh();
Debug.Log("文件夹已清空: " + path);
}
else
{
Debug.Log("文件夹不存在: " + path);
}
}
}
用法: