C# 如何将文件路径与文件搜索模式(即.*.jpg)匹配?

C# 如何将文件路径与文件搜索模式(即.*.jpg)匹配?,c#,C#,我知道如何在如下文件夹中获取与搜索模式匹配的所有文件: DirectoryInfo folderInfo = new DirectoryInfo(folderPath); FileInfo[] fileInfos = folderInfo.GetFiles(searchPattern); 但我的问题是,如果我已经知道文件路径,我如何将其与搜索模式匹配?为了兼容性,搜索模式必须采用与*.jpg或其他格式相同的格式。如果您已经拥有完整的文件路径,并且使用path.GetExtension或类似工

我知道如何在如下文件夹中获取与搜索模式匹配的所有文件:

DirectoryInfo folderInfo = new DirectoryInfo(folderPath);

FileInfo[] fileInfos = folderInfo.GetFiles(searchPattern);

但我的问题是,如果我已经知道文件路径,我如何将其与搜索模式匹配?为了兼容性,搜索模式必须采用与*.jpg或其他格式相同的格式。

如果您已经拥有完整的文件路径,并且使用path.GetExtension或类似工具仅隔离扩展名,那么您只需在设置之前添加一个*,对吗?

如果您已经拥有完整的文件路径,并且仅隔离扩展名,使用Path.GetExtension或类似工具,在设置之前只需添加*即可,对吗?

如果您已经知道路径,请不要使用搜索模式。 试一试


如果你已经知道路径,不要使用搜索模式。 试一试


我将您的问题解释为您已经有了文件路径的字符串,只想检查它是否匹配某个模式。为此,您首先需要考虑模式修补是否真的是您需要的,例如,最好直接使用扩展。


假设这不是一个选项,您可能会希望使用正则表达式。您需要将带有通配符的字符串转换为正则表达式。不幸的是,我不知道有什么内置的方法可以做到这一点,但是,只要对正则表达式中有意义的任何字符进行转义,并用适当的正则表达式替换通配符,就可以做到这一点。

我将您的问题解释为,您已经有了一个文件路径字符串,只想检查它是否匹配某个模式。为此,您首先需要考虑模式修补是否真的是您需要的,例如,最好直接使用扩展。


假设这不是一个选项,您可能会希望使用正则表达式。您需要将带有通配符的字符串转换为正则表达式。不幸的是,我不知道有什么内置的方法可以做到这一点,但这应该可以通过简单地转义正则表达式中有意义的任何字符并用适当的正则表达式替换通配符来实现。

您可以使用Directory.GetFiles,比如Directory.GetFilesd:/xxx/*.jpg来获得所有匹配文件的字符串数组,然后打开或处理单个文件。

您可以使用Directory.GetFiles(如Directory.GetFilesd:/xxx/*.jpg)获取所有匹配文件的字符串数组,然后打开或处理单个文件。

您可以为您的问题添加更多信息吗。从你写的内容来看,不清楚你是否已经有了一个文件,例如c:\folder\f.jpg,你想知道在同一个文件夹中是否有更多类似的文件。你能重新表述一下你的qs吗,我不明白你的意思。*将匹配你扔给它的任何东西,但这不是你真正的意思,是吗?你能给你的问题补充更多的信息吗。从你所写的内容来看,不清楚你是否已经有了一个文件,例如c:\folder\f.jpg,你想知道在同一个文件夹中是否有更多类似的文件。你能重新表述一下你的qs吗,我不明白你的意思。*.*会匹配你扔给它的任何东西,但这不是你真正的意思,是吗?你甚至试过获得OPs qs吗?也许他不是在寻找这个解决方案。你有没有试着让行动qs正确?也许他不是在寻找这个解决方案,这似乎不起作用。你是说目录吗。GetFiles@d:\xxx,*.jpg?这似乎不起作用。你是说目录吗。GetFiles@d:\xxx,*.jpg?
FileInfo fi = new FileInfo(FilePath);