.Net中的模式匹配与IsolatedStorageFile.GetFileNames()模式匹配一​​致

时间:2010-12-26 05:40:39

标签: c# .net silverlight isolatedstorage

此API使用的模式匹配逻辑是否公开,以便在.Net Framework中的某处重用?

我正在寻找FilePatternMatch( string searchPattern, stringfileNameToTest )形式的东西。

我正在为WP7实施一个临时解决方法,而不是过滤此重载的结果,我希望解决方案能够提供一致的体验,并避免在暴露时重新发明此功能。

如果没有公开行为以供重用,那么正则表达式解决方案(如glob pattern matching in .NET)就足够了,这将节省我花时间测试行为应该是什么的精细细节。

也许在上面链接的帖子中发布的答案之一是正确的。由于我还没有确认确切的行为,我无法一眼就确定这一点。如果您知道它的行为与问题标题中引用的API完全匹配,请随意指出其中一个答案。

我可以假设模式匹配与DOS处理的方式一致*和?在8.3文件名中(我熟悉该实现的行为细微差别),但是假设Microsoft已经在十年内发展了文件名的模式匹配行为,这是合理的,因为我认为我会在继续这个假设之前检查。

1 个答案:

答案 0 :(得分:0)

IsolatedStorageFile.GetFileNames()使用的模式匹配规则与System.IO.Path中使用的模式匹配规则相同。它们都使用Win32 API FindFirstFile / FindNextFile函数,即:

  

目录或路径以及文件   名称,可以包含通配符   字符,例如星号   (*)或问号(?)。

     

此参数不应为NULL,a   无效的字符串(例如,空   字符串或缺少的字符串   终止空字符)或结束   一个尾随反斜杠()。

     

如果字符串以通配符结尾,   句点(。)或目录名称   用户必须具有访问权限   根和所有子目录   路径。

     

在此功能的ANSI版本中,   名称仅限于MAX_PATH   字符。将此限制扩展到   32,767个宽字符,称之为   Unicode版本的功能和   将“\?\”添加到路径中。更多   信息,请参阅命名文件