[英]How to validate file path?
编辑1
我陷入了一个小问题,而我通常会去找的那个人,不管他信不信,在澳大利亚度蜜月时,那是多么的体贴。
问题是我一直在尝试获取boolean
,该boolean
会让我知道文件路径是否正确。
问题是它总是返回false,
我已经尝试了以下示例数据
c:\Lingerie\
c:\\Lingerie\\
c:\\
c:\
编辑
这是我到目前为止开发的输入屏幕。 我已经考虑过要留有多余的空格,所以我已经在trim命令中弹出了。
他们都返回了假。 这是我正在使用的方法以及调用它的代码。
dbFilePath = (text.getText()).trim();
bool03 = busLog.isFilePath(dbFilePath);
System.out.println("The result is " + bool03);
方法称为
public boolean isFilePath(String filePath) {
return discreetLog.isFilePathMatched(filePath);
}
和哪个电话
public boolean isFilePathMatched(String myFilePath){
String regularExpression = "([a-zA-Z]:)?(\\\\[a-zA-Z0-9_.-]+)+\\\\?";
Pattern pattern = Pattern.compile(regularExpression);
return Pattern.matches(regularExpression, myFilePath);
}
我不知道这是我的代码还是输入错误。
示例的第一个路径实际上与正则表达式正确匹配。
要匹配第二个和第四个,必须允许双反斜杠。 只需添加\\\\\\\\?
在您的正则表达式中前一个反斜杠的右侧。
为了匹配第三和第四,您需要使第二组为可选。 当前,它与运算符+
。 使用*
代替。
因此,如果您用此替换正则表达式:
String regularExpression = "([a-zA-Z]:)?(\\\\\\\\?[a-zA-Z0-9_.-]+)*\\\\?\\\\?";
它会匹配您所有的路径,仅此而已。
如果仍然无法匹配示例数据,则代码中的其他地方存在问题。 您可以尝试发布SSCCE 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.