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

问题描述 投票:0回答:1

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

我知道

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

java
1个回答
2
投票

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

我认为在非 Windows 系统上运行时没有任何方法可以访问 Windows 的文件系统提供程序。 所以我就用正则表达式凑合:

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

参考:命名文件、路径和命名空间

© www.soinside.com 2019 - 2024. All rights reserved.