2009-09-02 65 views
0
我正在使用follow命令获取FileSystemInfo的列表 获取搜索模式返回“* .exr”。该列表仍包含以“.exr2”结尾的文件,但不包括以“.exr.bak”结尾的文件。这是预期的功能吗?我应该手动检查返回的文件吗?我注意到这与我在命令行上从dir命令获得的结果相同。

回答

2

从MSDN:

当在是searchPattern使用星号通配符,例如“.TXT”,当扩展名是正好三个字符长比当延伸或多或少不同的匹配行为比三个字符长。具有正好三个字符的文件扩展名的searchPattern将返回具有三个或更多字符的扩展名的文件,其中前三个字符与searchPattern中指定的文件扩展名匹配。具有一个,两个或多于三个字符的文件扩展名的searchPattern仅返回具有与searchPattern中指定的文件扩展名相匹配的正好具有该长度的扩展名的文件。当使用问号通配符时,此方法只返回与指定文件扩展名匹配的文件。例如,在目录中给定两个文件“file1.txt”和“file1.txtother”,“file?.txt”的搜索模式仅返回第一个文件,而“文件.txt”的搜索模式返回这两个文件。

从这里http://msdn.microsoft.com/en-us/library/wz42302f.aspx

是.exr.bak不匹配“* .exr”,是因为扩展被确定为一组后的最后一个字符的原因拉“” (或文件扩展名分隔符),所以.exr与.bak不匹配。

+0

谢谢,因为我没有阅读文档而感到惭愧。 – 2009-09-02 18:59:23

1

这是由文件自动生成的short names引起的。短名称的扩展名总是“'后的最后一个。并且至多有3个字符。 “example.ext2”的简称以“.ext”结尾,“example.ext.bak”的简称以“.bak”结尾。

+0

所以这是Windows XP中的正确行为? – 2009-09-02 18:05:47

+0

是的,这是正确的行为。尝试cmd中的“dir/X”,你会看到短名称。 – 2009-09-02 19:58:32