2011-09-02 41 views
2

我知道怎么去搭配这样的文件夹中搜索模式的所有文件:如何将文件路径与文件搜索模式(即* .jpg)进行匹配?

DirectoryInfo folderInfo = new DirectoryInfo(folderPath); 

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

但我的问题是,如果我已经知道文件的路径,我怎么能与搜索模式相匹配呢?为了兼容性,搜索模式必须与* .jpg等格式相同。

+0

您能否为您的问题添加更多信息?从你写的内容来看,你是否已经有了一个文件例如c:\ folder \ f.jpg并且你想知道在同一个文件夹中是否有更多类似的文件是不清楚的。 – gyurisc

+3

你能否改述你的问题,我没有得到你。 – Zenwalker

+0

'*。*'会匹配你抛出的任何东西,但这不是你的真正意思,是吗? – spender

回答

0

我解释你的问题是这意味着你已经有文件路径的字符串,只是想检查是否匹配特定模式。为此,您首先需要考虑模式修补是否真的是您需要的,最好直接使用扩展名。

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

+0

我在检查我的账户,我忘记了为什么我问这个问题。无论如何感谢.... – AKFish

0

那么,如果你已经有了完整的文件路径,并且只使用Path.GetExtension或类似的方法来隔离扩展,那么你只需在设置之前添加一个*,对吧?

0

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

FileInfo fi = new FileInfo(FilePath); 
+0

你甚至试图得到任择议定书吗?也许他不在寻找这个解决方案。 – Zenwalker

-1

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

+0

这似乎并没有工作。你的意思是'Directory.GetFiles(@“d:\ xxx”,“* .jpg”)'? –

相关问题