概述
目标
- 通过编辑器工具运行
- 输出一个包含 “所有Assert下空文件夹的目录” txt文件
代码
- 需要放到 Editor 文件夹内
- 生成的 txt 放在 Assets 目录下,名为 EmptyFolderList.txt
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
public class EmptyFolderEditor : MonoBehaviour {
private static string root = "Assets";
private static string outputPath = "Assets/EmptyFolderList.txt";
private static List<string> pathList = new List<string>();
[MenuItem("Tools/遍历项目所有文件夹(输出空文件夹路径)")]
static void CheckAllFolder() {
GetAllEmptyFolder();
OutputAllEmptyFolder();
}
private static void GetAllEmptyFolder() {
RecursionCheck(root);
}
private static void RecursionCheck(string rootPath) {
DirectoryInfo rootDirectoryInfo = new DirectoryInfo(rootPath);
FileInfo [] rootFileInfos = rootDirectoryInfo.GetFiles();
DirectoryInfo [] rootDirInfos = rootDirectoryInfo.GetDirectories();
if (rootDirInfos.Length == 0 && rootFileInfos.Length == 0) {
pathList.Add(rootDirectoryInfo.FullName);
}
else {
for (int i = 0; i < rootDirInfos.Length; i++) {
DirectoryInfo directoryInfo = rootDirInfos[i];
DirectoryInfo [] dirInfos = directoryInfo.GetDirectories();
FileInfo [] fileInfos = directoryInfo.GetFiles();
string fullName = directoryInfo.FullName;
if (dirInfos.Length == 0 && fileInfos.Length == 0){
pathList.Add(fullName);
}
else if(dirInfos.Length > 0) {
foreach (var info in dirInfos) {
RecursionCheck(info.FullName);
}
}
}
}
}
private static void OutputAllEmptyFolder() {
if (File.Exists(outputPath)) {
File.Delete(outputPath);
}
File.Create(outputPath).Dispose();
File.WriteAllLines(outputPath, pathList.ToArray());
pathList.Clear();
Debug.Log("OutputAllEmptyFolder Success!!");
}
}
点这里运行工具:
运行成功:
- 空文件夹路径在 Assets/EmptyFolderList.txt 下
- 输出:
最后
以上就是完美金毛为你收集整理的Unity基于C#代码实现 查找所有空文件夹操作目标代码的全部内容,希望文章能够帮你解决Unity基于C#代码实现 查找所有空文件夹操作目标代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复