我写了一个方法,需要找到路径中的所有文件,我想使用递归获取所有文件.这是我目前的方法:
public void doStart(DirectoryInfo dir, string filePattern)
{
try
{
foreach (FileInfo fileInfo in dir.GetFiles(filePattern))
{
if (fileFound != null)
{
fileFound(fileInfo);
}
}
}
catch (Exception)
{
}
try
{
foreach (DirectoryInfo dirInfo in dir.GetDirectories())
{
doStart(dirInfo, filePattern);
}
}
catch (Exception)
{
}
}
public void Start(string path, string filePattern)
{
doStart(new DirectoryInfo(path), filePattern);
}
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来编写这种递归或这是否足够好?
尝试这样的事情:
string[] filePaths = Directory.GetFiles(@dir, "*.filetype", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)
这将以递归方式查看目录,查找具有特定文件类型('.filetype')的所有文件,并返回包含所有找到的文件的字符串数组.
此外,我建议不要使用空的catch块,因为如果出现问题,您的应用程序将不会让您知道.要么显示消息框(或类似的东西),要么将其记录到数据库或其他东西.
此外,如果子目录中有子目录,您的DoStart()方法会做什么?从我所看到的,我会说它只搜索1个子级.
| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |