4 changed files with 76 additions and 2 deletions
@ -0,0 +1,68 @@
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.IO; |
||||
using System.Linq; |
||||
using UnityEngine; |
||||
|
||||
namespace Tools.Editor |
||||
{ |
||||
/// <summary> |
||||
/// 目录操作的工具类。 |
||||
/// </summary> |
||||
public static class DirectoryUtil |
||||
{ |
||||
/// <summary> |
||||
/// 确保指定的目录存在。如果不存在,则创建该目录。 |
||||
/// </summary> |
||||
/// <param name="path">要检查或创建的目录路径。</param> |
||||
public static void MakeSureDirectory(string path) |
||||
{ |
||||
if (!Directory.Exists(path)) |
||||
{ |
||||
Directory.CreateDirectory(path); |
||||
} |
||||
} |
||||
|
||||
/// <summary> |
||||
/// 获取 "Assets/" 文件夹中所有目录的文件路径,排除某些目录。 |
||||
/// </summary> |
||||
/// <returns>文件路径的可枚举集合。</returns> |
||||
public static IEnumerable<string> GetFilePaths() |
||||
{ |
||||
var dirs = Directory.GetDirectories("Assets/", "*", SearchOption.AllDirectories); |
||||
var filterList = dirs.Where(file => |
||||
!file.Contains(".git") && |
||||
!file.Contains("Plugins") && |
||||
!file.Contains("Scenes") |
||||
).Select(file => file.Replace('\\', '/')).ToHashSet(); |
||||
return filterList; |
||||
} |
||||
|
||||
/// <summary> |
||||
/// 从指定路径中提取文件或目录的名称。 |
||||
/// </summary> |
||||
/// <param name="path">要提取名称的路径。</param> |
||||
/// <returns>提取的名称。</returns> |
||||
public static string ExtractName(string path) |
||||
{ |
||||
var startIndex1 = path.LastIndexOf("/", StringComparison.Ordinal) + 1; |
||||
var startIndex2 = path.LastIndexOf("\\", StringComparison.Ordinal) + 1; |
||||
var startIndex = Mathf.Max(startIndex1, startIndex2); |
||||
var endIndex = path.LastIndexOf(".", StringComparison.Ordinal); |
||||
return endIndex == -1 ? path[startIndex..] : path[startIndex..endIndex]; |
||||
} |
||||
|
||||
/// <summary> |
||||
/// 从指定路径中提取文件夹路径。 |
||||
/// </summary> |
||||
/// <param name="path">要提取文件夹路径的路径。</param> |
||||
/// <returns>提取的文件夹路径。</returns> |
||||
public static string ExtractFolder(string path) |
||||
{ |
||||
var endIndex1 = path.LastIndexOf("/", StringComparison.Ordinal); |
||||
var endIndex2 = path.LastIndexOf("\\", StringComparison.Ordinal); |
||||
var endIndex = Mathf.Max(endIndex1, endIndex2); |
||||
return path[..endIndex]; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2 |
||||
guid: a9cf985844984893aa10d114d8710d0d |
||||
timeCreated: 1735748052 |
Loading…
Reference in new issue