如何在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
相关产品推荐
相关产品推荐

