我的应用程序涉及文件加载和保存(仅限Windows),用户可以输入他们喜欢的任何名称。
我想确保我有足够的检查和验证,以防止由于用户选择的名称而发生任何错误。
通常会导致问题的名称是什么,我应该测试我的应用程序是否可以使用?
答案 0 :(得分:1)
..(仅限Windows)....通常会导致问题的名称是什么,我应该测试我的应用程序是否可以使用?
您应该避免使用
等文件名CON, PRN, AUX, CLOCK$, NUL, COM0-9, LPT0-9
文件名中不允许使用以下字符
^./\\:*?\"<>|
请查看此MSDN链接以获取更多信息,
我想确保我有足够的检查和验证来防止任何问题 由于用户选择的名称而发生错误。
用户无法创建包含上述值的文件(至少没有任何黑客攻击),因此用户无法选择其中一个文件。
您可以通过使用regExp来避免使用文件名。
(?i)(COM\\d{1}| LPT\\d{1} | CON | PRN | AUX |CLOCK$ | NUL)//TO avoid names
答案 1 :(得分:0)
只允许使用字母数字字符,您可以使用Apache Commons Lang执行此操作:
StringUtils.isAlphanumeric(file_name)
如果用户再次提供相同的文件名,您需要有一个业务逻辑,您的逻辑应基于以下三点: