繁体   English   中英

如何验证文件路径?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM