有没有一种方法可以专门针对Windows路径检查Java中的文件路径?

时间:2020-03-09 17:42:38

标签: java

我的应用程序具有称为“仪器”的对象,它们是连接到某些实验室设备的Windows机器的表示。这些工具的几个属性与文件路径有关。因此,我的应用程序需要检查Windows路径的有效性,但是我希望我的应用程序可以在Windows和Linux环境中运行。

我知道Path类及其方法几乎是我想要的,但是它们依赖于OS。当我的应用程序在Linux环境上运行时,检查失败。无论主机操作系统如何,我都需要检查Windows路径有效性(和绝对性)的工具。是否有可以帮助我的类,还是我必须创建自己的实现?

1 个答案:

答案 0 :(得分:1)

我花了一段时间才了解您的要求。您想检查路径是否是Windows的有效绝对路径,即使在非Windows系统上运行也是如此。

在非Windows系统上运行时,我认为没有任何方法可以访问Windows的FileSystem提供程序。所以我只用一个正则表达式:

boolean validWindowsAbsolutePath =
    path.matches(
        "([a-zA-Z]:|\\\\)" +
        "(\\\\[^<>:\"/\\\\|?*\u0000-\u001f]+)+")
    &&
    !path.matches(
        "(|.*\\\\)(?i:con|prn|aux|nul|com[1-9]|lpt[1-9])" +
        "(\\.[^.]*)?");

参考:Naming Files, Paths, and Namespaces