如何仅按编号访问带有Pattern(NUMBER.NAME)的目录

问题描述 投票:-1回答:1

我有这种模式的目录:

  • 0001.MyFolder
  • 0002.MyFolder2
  • 0003.MyFolder3

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

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

模式是

数字(点)字符串

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

c# .net regex path directory
1个回答
3
投票

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

GetDirectories(String, String)

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


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
© www.soinside.com 2019 - 2024. All rights reserved.