You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中使用VB.NET My命名空间的My.Computer.FileSystem.GetDirectories()函数?

在C#中替代VB.NET的My.Computer.FileSystem.GetDirectories()的方法

你有两种方式实现类似VB.NET中My.Computer.FileSystem.GetDirectories()的功能:

1. 直接调用VB.NET的FileSystem类(需引用依赖)

My.Computer.FileSystem.GetDirectories()本质是封装了Microsoft.VisualBasic.FileIO.FileSystem类的方法,你可以在C#中直接调用这个类:

  • 首先在项目中添加对Microsoft.VisualBasic程序集的引用
  • 使用以下代码:
using Microsoft.VisualBasic.FileIO;

// 语法和VB.NET版本完全一致,支持搜索选项与通配符
string[] targetDirectories = FileSystem.GetDirectories(@"C:\YourTargetPath", SearchOption.SearchAllSubDirectories, "*");

2. 使用C#原生的Directory类(推荐)

C#自带的System.IO.Directory类提供了更符合C#开发习惯的等价方法,无需依赖VB.NET的程序集:

  • 获取指定目录的直接子目录:
using System.IO;

string[] directories = Directory.GetDirectories(@"C:\YourTargetPath");
  • 递归获取所有层级的子目录(对应VB中的SearchAllSubDirectories):
string[] directories = Directory.GetDirectories(@"C:\YourTargetPath", "*", SearchOption.AllDirectories);
  • 处理大量目录时,推荐使用延迟加载的EnumerateDirectories,避免一次性加载所有目录到内存:
foreach (string dirPath in Directory.EnumerateDirectories(@"C:\YourTargetPath", "*", SearchOption.AllDirectories))
{
    // 逐个处理目录
}

内容的提问来源于stack exchange,提问作者jm6271

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:00:51