namespace MeloongCore; public static class DirectoryUtils { /// /// 创建文件夹,或文件所在的文件夹。 /// 文件夹已存在时不会抛出异常。 /// public static void Create(string path, bool isFilePath = false) { if (isFilePath) path = Path.GetDirectoryName(path); Directory.CreateDirectory(PathUtils.ToLongPath(path)); } /// /// 判断文件夹是否存在。 /// public static bool Exists(string path) => Directory.Exists(PathUtils.ToLongPath(path)); /// /// 创建 对象。 /// public static DirectoryInfo GetInfo(string path) => new(PathUtils.ToLongPath(path)); /// /// 返回指定路径下的所有文件。 /// public static IEnumerable EnumerateFiles(string path, string searchPattern = "*", bool topDirectoryOnly = false) { if (!Exists(path)) return []; return Directory.EnumerateFiles(PathUtils.ToLongPath(path), searchPattern, topDirectoryOnly ? SearchOption.TopDirectoryOnly : SearchOption.AllDirectories); } /// /// 返回指定路径下的所有文件夹。 /// 路径不以分隔符结尾。 /// public static IEnumerable EnumerateDirectories(string path, string searchPattern = "*", bool topDirectoryOnly = false) { if (!Exists(path)) return []; return Directory.EnumerateDirectories(PathUtils.ToLongPath(path), searchPattern, topDirectoryOnly ? SearchOption.TopDirectoryOnly : SearchOption.AllDirectories); } }