加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何按部分名称c#查找文件夹和文件

发布时间:2020-12-15 23:45:50 所属栏目:百科 来源:网络整理
导读:在我的硬盘驱动器的特定文件夹中,我已经存储了许多其他子文件夹和文件.现在我想按部分名称列出这些文件夹和文件名. for example--------------c webapi xx folderc mvctutorial xx folderdone webapi xx folderwebapi done folderwebapi.zip filemvc.iso fil
在我的硬盘驱动器的特定文件夹中,我已经存储了许多其他子文件夹和文件.现在我想按部分名称列出这些文件夹和文件名.

for example
--------------
c webapi xx           folder
c mvctutorial xx      folder
done webapi xx        folder
webapi done           folder
webapi.zip            file
mvc.iso               file

现在,当我想通过部分名称webapi搜索,然后我想获得具有webapi字的文件和文件夹名称列表.我想在网格中显示他们的完整文件夹或文件名及其完整路径和大小.喜欢以下方式.

Name                  Type       location    Size
-----                 ------     ---------   -------
c webapi xx           folder     c:test1    2 KB
c mvctutorial xx      folder     c:test3    3 KB
done webapi xx        folder     c:test1    11 KB
webapi done           folder     c:test1    9 KB
webapi.zip            file       c:test1    20 KB
mvc.iso               file       c:test4    5 KB

我有一个示例代码,看起来像查找文件,但下面的代码可能找不到文件夹.所以我正在寻找一个可以找到文件和文件夹的示例代码.所以指导我解决我的问题.

下面的示例代码将查找文件,但不确定它是否按部分名称查找文件.这是代码.我不是在开发环境之前.所以无法测试下面的代码.

找到文件代码

static void Main(string[] args)
    {
        string partialName = "webapi";

        DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:");
        FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*");

        foreach (FileInfo foundFile in filesInDir)
        {
            string fullName = foundFile.FullName;
            Console.WriteLine(fullName);
        }

    }

解决方法

如果只需要全名,可以使用更通用的类型“FileSystemInfo”.

static void Main(string[] args)
{
    string partialName = "webapi";

    DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:");
     FileSystemInfo[] filesAndDirs = hdDirectoryInWhichToSearch.GetFileSystemInfos("*" + partialName + "*");

    foreach (FileSystemInfo foundFile in filesAndDirs)
    {
        string fullName = foundFile.FullName;
        Console.WriteLine(fullName);
    }
}

编辑:
如果你需要特殊类型的方法,你仍然可以在for循环中转换为:

foreach (FileSystemInfo foundFile in filesAndDirs)
{
    string fullName = foundFile.FullName;
    Console.WriteLine(fullName);

    if (foundFile.GetType() == typeof(FileInfo))
    {
        Console.WriteLine("... is a file");
        FileInfo fileInfo = (FileInfo)foundFile;
        Console.WriteLine("Extension: " + fileInfo.Extension);
    }

    if (foundFile.GetType() == typeof(DirectoryInfo))
    {
        Console.WriteLine("... is a directory");
        DirectoryInfo directoryInfo = (DirectoryInfo)foundFile;
        FileInfo[] subfileInfos = directoryInfo.GetFiles();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读