【发布时间】:2019-11-18 20:55:28
【问题描述】:
我有以下 FileInfo 搜索模式,并且没有返回目录中的文件。
string fileSearch = itemP + "_" + ParseColor(itemC) + "*_c1.jpg";
FileInfo[] files = dir.GetFiles(fileSearch, SearchOption.TopDirectoryOnly);
目录中存在的文件如下: 122929977_NAVY_HOHHE_0_0_c1.jpg
如果我更改模式以忘记颜色和 *_c1 它会找到文件,但这不是我需要的,有些图像具有图片的多个视图,但我唯一需要和想要的就是那个与传入的颜色匹配并且名称中包含 _c1..
构建并传入dir.GetFiles的模式是“122929977_NAVY*_c1.jpg”
我做错了什么?它可以与我想要传递的预期模式一起工作吗?
【问题讨论】:
-
fileSearch的值实际上是"122929977_NAVY*_c1.jpg"吗?我刚刚测试了该模式,它确实找到了“122929977_NAVY_HOHHE_0_0_c1.jpg” -
会不会是区分大小写的问题?或者扩展名不是jpg,而是jpeg?我会在这里仔细查看您的实际文件名
-
另外,这个文件是否位于
dir目录中,而不是下面的子文件夹?只需检查您是否可以使用SearchOption.AllDirectories找到任何内容。 -
@Xiaoy312 是的,减去引号,这就是我在调试和逐步执行代码时看到的变量文件搜索中传递的内容。在该目录中,没有子目录,并且搜索模式的第一部分存在 2 个文件 122929977_NAVY_HOHHE_0_0_c1.jpg 和 122929977_NAVY_HOHHE_0_0_c2.jpg,在这种情况下,它应该为我找到了 _c1 文件,但从未找到。就像我说如果我将我的模式更改为 122929977_NAVY*.jpg 它可以工作,但它会返回上面的 2 个文件,我只需要 c1 图像。
-
dir是 DirectoryInfo 对象。你能展示你如何构建类构造函数中使用的路径吗?因为,如果文件名 + 通配符是"122929977_NAVY*_c1.jpg"并且路径正确,你就会得到结果。
标签: c# winforms directory fileinfo