获取带通配符的文件

时间:2015-12-13 13:44:47

标签: c#

我试图编写一个接收带通配符路径的方法,例如: 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来工作......我可以拆分并连接但似乎对于这个小功能很有用。

1 个答案:

答案 0 :(得分: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..
}