首页 > 解决方案 > 如何仅按数字访问带有 Pattern ( NUMBER.NAME ) 的目录

问题描述

例如,我有这种模式的目录:

输入只是目录的数量(例如输入 0002 -> 然后在 MyFolder 3 中获取项目)

以及如何按其编号返回目录路径?示例:输入 0002 返回 C:\MyPath\0002.MyFolder2

模式是

数字(点)字符串

所以我需要通过点之前的数字访问任何目录。

标签: c#.netregexpathdirectory

解决方案


找出问题的最佳方法是开始谷歌搜索并阅读文档

获取目录(字符串,字符串)

返回与指定目录中的指定搜索模式匹配的子目录的名称(包括它们的路径)。


searchPattern可以是文字和通配符的组合,但不支持正则表达式。中允许使用以下通配符说明符searchPattern

通配符说明符匹配

  • *(星号)该位置的零个或多个字符。
  • ?(问号)该位置的零个或一个字符。

所以这里有一个小方法可以帮助你

  public string GetFolder(string index, string path)
     => Directory.GetDirectories(path, $"{index}.*")
                 .FirstOrDefault();

用法

var dir = GetFolder("0001", @"C:\MyHomeWorkFolder");

if(dir != null)
   // we have found something

推荐阅读