2014-04-15 29 views
0

在.NET中,我会使用System.IO.Path.GetInvalidFileNameChars来扫描包含文件名的字符串以验证它不包含无效字符。在WinJS中检测无效文件名

在WinJS中,我无法找到与此功能相同的功能。还有其他地方可以检索这些角色吗?我的代码是根据文件中的一些元数据构建一个字符串,我怀疑可能有字符存在,在创建新文件时不起作用(想象一下例如Microsoft Word docx文件的“标题”,其中标题可能包含:\字符,这些字符不会是有效的文件名)。我想删除或转换这些无效字符,以便可以保存文件而无需用户干预。

当然,我可以从.NET和硬代码中获得一个列表,但看起来并不那么优雅。我的另一个想法是公开C#组件的功能(并将它作为一个WinRT组件公开),但我宁愿不介绍第二次运行时只是为了这样一些简单的功能,如果我可以帮助它。

回答

0

在WinJS中似乎没有这样做的方法。

鉴于特殊字符的数量很少,我只是硬编码这些。要获取列表,只需尝试在Windows资源管理器中将文件重命名为file?.txt即可。它显示无效字符列表:

\/: * ? " < > | 
+0

基本上,我只是用最后一个正则表达式来替换这些字符。 'filename = filename.replace(/ [“<>:| \\\ /?]/img,” - “);'太糟糕了,微软无法获得该列表。 – WiredPrairie