如何列出目录中的所有子目录

2023-12-09

我正在开发一个项目,我需要列出目录中的所有子目录。例如,如何列出驱动器 C: 中的所有子目录?


Use Directory.GetDirectories获取指定目录的子目录“你的目录路径”。结果是一个字符串数组。

var directories = Directory.GetDirectories("your_directory_path");

默认情况下,仅返回一层深度的子目录。有选项可以递归返回所有内容并过滤结果,记录在这里,并在克莱夫的回答中显示。


避免 UnauthorizedAccessException

您很可能会得到一个UnauthorizedAccessException如果您访问了您无权访问的目录。

您可能必须创建自己的方法来处理异常,如下所示:

public class CustomSearcher
{ 
    public static List<string> GetDirectories(string path, string searchPattern = "*",
        SearchOption searchOption = SearchOption.AllDirectories)
    {
        if (searchOption == SearchOption.TopDirectoryOnly)
            return Directory.GetDirectories(path, searchPattern).ToList();

        var directories = new List<string>(GetDirectories(path, searchPattern));

        for (var i = 0; i < directories.Count; i++)
            directories.AddRange(GetDirectories(directories[i], searchPattern));

        return directories;
    }

    private static List<string> GetDirectories(string path, string searchPattern)
    {
        try
        {
            return Directory.GetDirectories(path, searchPattern).ToList();
        }
        catch (UnauthorizedAccessException)
        {
            return new List<string>();
        }
    }
}

然后这样称呼它:

var directories = CustomSearcher.GetDirectories("your_directory_path");

这会递归地遍历目录及其所有子目录。如果它到达无法访问的子目录,则会抛出异常UnauthorizedAccessException,它捕获异常并仅返回该不可访问目录的空列表。然后它继续到下一个子目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何列出目录中的所有子目录 的相关文章

  • 将 ASP.NET 网站连接到 SQL 数据库

    我目前正在尝试在 ASP NET 网站项目和 SQL Server 2008 R2 构建的数据库之间建立连接 我需要这样做的方式是使用connectionString来自Web config页面 但我不知道要赋予它什么值或如何使用所述值建立
  • 一种链接到类、方法,尤其是 C# 注释中的特定代码行的方法

    我想使用代码中指向目标的链接来构建某种文档 目标可以是Class or a Method或特定的代码行 指向特定的代码行是最重要的 我想到了VS2010的扩展或者特定的评论标签 有什么办法可以建立这种类型的链接吗 xml注释 沙堡可能就是你
  • pop() 期间提升 Fibonacci 堆访问冲突

    Context 我目前正在实现某种形式的 A 算法 我决定使用 boost 的斐波那契堆作为底层优先级队列 我的图表是在算法运行时构建的 作为我使用的顶点对象 class Vertex public Vertex double double
  • boost::noncopyable 是如何工作的

    我在 C 实践中偶然发现了两个愚蠢的问题 据我所知 c 中的复制构造函数和赋值运算符不是继承的 那么 boost noncopyable 在这种情况下如何帮助禁止这些东西呢 class X private boost noncopyable
  • 使用“对‘boost::system::get_system_category()’的未定义引用”链接到 boost barfs

    我在静态链接使用 boost 1 35 库的应用程序时遇到问题 我使用的是 Linux debian Lenny box 带有 G 4 3 2 链接无 static工作顺利 具体来说 g Wall Wextra pedantic ggdb3
  • 如何使用仿函数作为类模板中的成员?

    我试图使用函子作为std function类模板内的对象 以下是我到目前为止所做的事情 the functor class template template
  • 无符号长十六进制表示

    include
  • CMake include_directories 和 add_subdirectories 之间的区别?

    我正在学习 CMake 来构建 C 代码 并努力解决以下概念 在我的根级目录中 我有一些 cpp 文件和 CMakeLists txt 它们在 gen cpp 目录中成功生成了一些 thrift 代码 我的根级别 CMakeLists tx
  • 如何为 IAsyncOperation 指定回调方法

    是否可以指定一个方法完成后调用async手术 平台 C Windows Phone 8 我需要实现非阻塞方法来异步发送UDP数据包 他们有我的方法 onWriteComplete int errorCode 操作完成时回调 这是我尝试过的
  • NHibernate 继承 - 判别器值

    NHibernate 是否可以有一个像这样工作的判别器 如果值等于 String Empty gt Class1 其他 gt Class2 我已经有一个 CultureName 字符串列 我想将其用作鉴别器 我不想添加额外的布尔列 如果 C
  • WCF:通用接口的序列化可能吗?

    我正在尝试实现一个服务契约 其中包含一个采用通用接口的方法 并且该通用接口本身被赋予一个接口参数 我用 ServiceKnownType 装饰了服务接口 用常规 KnownType 装饰了服务实现 并用常规 KnownType 装饰了数据契
  • 我不明白这个霍夫曼算法的实现

    template
  • 像 MS Excel 一样在 C++ 中舍入双精度值

    我在网上进行了搜索 但找不到解决我的问题的方法 我只是想要一个像 MS Excel 那样对双精度值进行舍入的函数 这是我的代码 include
  • Microsoft Build Tools 2013 缺少 v120 目录

    我们已经安装了 Microsoft Build Tools 2013 从http www microsoft com en us download details aspx id 40760 http www microsoft com e
  • 使用 C# winforms 与 Windows 中的其他桌面应用程序交互

    我想知道是否可以与使用我的程序的其他程序进行交互 例如 单击另一个程序上的按钮等 我不确定这是否可能 但如果可能的话 有人可以提供一些 C 示例代码 Thanks 您可以创建消息并将其发送到其他进程 为此 您必须在 C 代码中使用 P In
  • 传递给 WCF 服务的可选查询字符串参数

    我想知道如何使用 string limit WebOperationContext Current IncomingRequest UriTemplateMatch QueryParameters Limit 在我的wcf中这个方法 Cit
  • MVC - 从视图调用控制器

    我是 MVC 新手 我正在使用 MVC 开发一个 Web 应用程序 该应用程序仅包含一个页面 所以在这个视图中我必须填充多个数据 假设应用程序是 新闻提要 应用程序 我需要填充最近的新闻 您喜欢的新闻 您朋友推荐的新闻等 那么我应该从视图到
  • 如何隐藏鼠标光标?

    我想问是否有人可以为我提供一个 C 代码 在其中我可以在按下特定键时隐藏 显示鼠标指针 我发现一些只为 TURBO C 编写的代码 它们都不能使用 dev c 甚至 Visual c 编译和运行 我尝试运行在 Dev C 中找到的代码 但我
  • 着色器可以旋转形状以面向相机吗?

    我制作了一个球出现在 3D 空间中的场景 三角球耗费大量资源 所以我使用带有球纹理的二维表面 四边形 来完成此操作 但现在我需要在每次相机移动时调整形状的方向 我使用位置变换和 LookAt 方法来完成此操作 问题是我可以优化这个吗 如果可
  • C++ 中的 golang 风格“延迟”[重复]

    这个问题在这里已经有答案了 我正在阅读有关 go 语言的defer http blog golang org defer panic and recover陈述 它允许您指定函数结束时要执行的操作 例如 如果您有一个文件指针或资源 则只需指

随机推荐

  • Codeigniter AOP [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要 Codeigniter PHP 框架的 AOP 范例的良好实现 你有什么建议我 面向方面的编程在 PHP 世界中还不是很普遍 我不确定 CI
  • 在 C# 中重用 HttpWebRequest 的连接

    我需要使用 Net 发出 POST 请求 我可以通过 GET 进行身份验证 因此我尝试在同一连接上发出 POST 请求以保持身份验证 问题是我收到 401 Not Authenticated 异常 这意味着连接尚未被重用 HttpWebRe
  • 在 Node js 8 中打印 libuv 线程池大小

    这个链接纯粹指定libuv提供一个线程池 可用于运行用户代码并在循环线程中获得通知 它的默认大小是 4 但是可以在启动时通过设置来更改它UV THREADPOOL SIZE环境变量为任意值 绝对最大值为 128 So in package
  • 在屏幕右下角打开 Chrome 应用程序窗口

    我希望我的 Chrome 应用程序能够打开 使其接触任务栏并恰好偏离屏幕右侧 我当前的代码 chrome app runtime onLaunched addListener function chrome app window creat
  • C编程动态初始化二维数组

    我在这里做了一些愚蠢的事情 但我无法确切地指出是什么 void init data double data int dim x int dim y int i j k data double malloc sizeof double dim
  • 为什么seaborn计数图和直方图以不同的方式显示相同的十六进制颜色?

    我试图在我的论文中保留单一的调色板 我注意到我的直方图的蓝色和我的计数图的蓝色色调略有不同 即使我将它们设置为完全相同的十六进制值 我是否缺少一个设置 或者这些不同的图不仅仅显示给定的十六进制 我尝试过使用计数图饱和度 但它与颜色不匹配 理
  • 在 Git 中编写一个预推送挂钩来 grep 正则表达式的所有文件,如果未找到正则表达式,则希望拒绝推送

    我有以下预推钩 理想情况下 我希望它遍历所有推送到我的存储库的文件 如果任何文件的内容与顶部定义的正则表达式不匹配 则拒绝推送 尝试循环访问文件时出现以下错误 未定义方法 each for String NoMethodError each
  • 共享首选项或 SQlite

    我正在开发一个 Android AppWidget 它显示从配置活动输入的简短文本 在存储数据时我有点困惑 我应该使用共享首选项还是 SQlite 数据库 Thanks 这完全取决于您想要存储的数据 共享偏好 小数据 非结构化 例如登录信息
  • 将参数传递给同步过程调用

    创建线程对象时 我想从应用程序中调用需要同步的代码 问题是我不知道怎么打电话Synchronize对于带有参数的应用程序函数 说我们有 procedure ThreadObject Execute var val1 val2 integer
  • 创建嵌入式mysql数据库

    如何创建嵌入式mysql数据库与 C 定义 嵌入式 如果您尝试在未安装 MySQL 的情况下使用 MySQL 那么您就不走运了 SQLite 和 SQL Server Compact Edition 请参阅 Matthew 的链接 是您在不
  • 如何使同一项目中的另一个类可以访问变量?

    我有一个变量 PrincipleIndex 在一个班级 Principles cs 在一个 C 项目中 Bullseye Biz Logic Trading Principle Data Principles cs int Principl
  • mlpy - 动态时间扭曲取决于 x?

    I am trying to get the distance between these two arrays shown below by DTW 我正在使用Pythonmlpy提供的套餐 dist cost path mlpy dtw
  • 绘制根节点位于顶部的树状图

    我有以下玩具图 例如代表论坛主题 import igraph as ig g ig Graph n 12 directed True g add edges 1 0 2 1 3 2 4 3 5 1 6 2 7 6 8 7 9 0 10 0
  • 在 iPhone 上,如何使 URL 显示 App Store 中的条目?

    例如 如果有人在 iPhone 上查看某个应用程序的 URL 我们希望该 URL 能够打开 App Store 并显示与该应用程序相关的条目 这个想法是允许在 iPhone 上单击两次 单击链接 然后单击 安装 按钮 即可下载应用程序 这怎
  • 无法在 Mac Mojave 上将任何 C 程序与 gcc 链接

    我刚刚更新到 OSX 10 14 6 Mojave 现在 在升级 Xcode 并迁移 MacPorts 后 即使是最简单的 C 程序也不会与任何 gcc 版本链接 例如 链接程序 int main gives dcs16 gt gcc te
  • 垂直对齐多个不同高度的图像

    我有一个轮播脚本 它显示我正在处理的网站的所有用户 该轮播显示用户的头像 我尝试垂直对齐头像 但我无法正确对齐 我还在互联网上检查了其他主题 例如http codepen io chriscoyier pen oJeAK 但没有什么真正符合
  • 使用 altBeacon 库的 Android 中不显示所有信标

    我正在使用AltBEacon Android 库为开发一个适用于 Android 设备的 iBeacon 应用程序 我正在扫描信标 但是 仅找到四分之二的信标 有时是 1 4 我增加mBeaconManager setForegroundS
  • 如何使用 PowerShell 删除用户配置文件

    我有下面的脚本 如果我取消注释该行 3 我收到错误 Exception calling Delete with 0 argument s At Z Scripts Powershell Remove UserProfile ps1 48 c
  • 适用于 Android 的 catmull-rom 样条线

    我正在尝试找到一种在android平台上实现catmull rom样条线的方法 以便通过n个点平滑地绘制一条线 理想情况下 我能够通过 Path 及其cubicTo 方法调整三次贝塞尔曲线 如本线程中提到的 如何在 Android 中通过树
  • 如何列出目录中的所有子目录

    我正在开发一个项目 我需要列出目录中的所有子目录 例如 如何列出驱动器 C 中的所有子目录 Use Directory GetDirectories获取指定目录的子目录 你的目录路径 结果是一个字符串数组 var directories D