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);
}
}