所以,我觉得问这个问题很差劲,但我有点困惑。我想在一个以tif结尾的目录中得到一个文件列表.只有蒂夫..。不是蒂夫。所以,我在C# .
Directory.GetFiles(path, "*.tif", SearchOption.TopDirectoryOnly);我希望它只返回tif文件,但事实并非如此。我也会被骗的。我会想,如果我提供了面具.tif?,我会两者兼得,但不会得到面具.tif。我也在命令提示符下尝试过,在DOS中也是一样。我是不是漏掉了什么?这在我看来是不对的。我想我可以在事后对结果进行消毒,但如果我没有必要的话,那就最好了。
发布于 2013-04-03 17:01:43
来自MSDN:
在searchPattern中使用星号通配符(例如,"*.txt")时,匹配行为取决于指定文件扩展名的长度。文件扩展名为searchPattern的返回扩展名为的文件,其中前三个字符与searchPattern中指定的文件扩展名匹配。文件扩展名为1、2或超过3个字符的searchPattern只返回扩展名与searchPattern中指定的文件扩展名完全匹配的文件。使用问号通配符时,此方法只返回与指定文件扩展名匹配的文件。例如,给定目录中的两个文件"file1.txt“和"file1.txtother","file?.txt”的搜索模式只返回第一个文件,而"file*.txt“的搜索模式则返回两个文件。
发布于 2013-04-03 17:00:43
这正是Directory.GetFiles的工作方式。从手册中:
在searchPattern中使用星号通配符(如"*.txt“)时,当扩展长度恰好为三个字符时,匹配行为与扩展名长度大于或小于三个字符时的匹配行为不同。文件扩展名为三个字符的searchPattern返回扩展名为三个或更多字符的文件,其中前三个字符与searchPattern中指定的文件扩展名匹配。
发布于 2013-04-03 17:08:01
Directory.GetFiles内部使用函数来自Win32 API。。
来自FindFirstFile的文档
·搜索包括长文件名和短文件名。
长文件名为asd.tiff的文件将具有像asd~1.tif这样的短文件名,这就是它在结果中显示的原因。
https://stackoverflow.com/questions/15793479
复制相似问题