获取带有通配符的文件

本文关键字:文件 通配符 获取 | 更新日期: 2023-09-27 18:26:33

我正在尝试编写一个方法,该方法将接收带有通配符的路径,例如:c: ''temp''aa*.xml我想退回List<FileInfo>

我正在使用

var directoryName = Path.GetDirectoryName(path);
var filesName = Path.GetFileName(path);
IDirectoryInfoWrap directoryInfo = new DirectoryInfoWrap(directoryName);
var res = directoryInfo.GetFiles(filesName).ToList();

但它失败了,因为Path.Get…不适用于包含通配符的路径。

我试过分开这条路,但是。。Path.LastIndexOf(Path.DirectorySeparatorChar)不能通过返回-1来工作…我可以进行拆分和合并,但对于这个小功能来说似乎有很多工作要做。

获取带有通配符的文件

使用Directory.EnumerateFiles方法:

string fullFilePath = "c:'temp'aa*.xml";
string fileNamePattern = Path.GetFileName(fullFilePath);
string sourceDirectory = fullFilePath.Replace(fileNamePattern, string.Empty);
try
{
    var foundFiles = Directory.EnumerateFiles(sourceDirectory, fileNamePattern );
    foreach (string currentFile in foundFiles)
    {
      //Do whatever you need with the file here...
    }
}
catch (Exception e)
{
    //Handle exceptions here..
}