我的应用程序有称为“仪器”的对象,它们代表连接到某些实验室设备的 Windows 计算机。这些仪器的几个属性与文件路径相关。因此,我的应用程序需要检查 Windows 路径的有效性,但我希望我的应用程序能够在 Windows 和 Linux 环境上运行。
我知道
Path
类及其方法几乎是我想要的,但它们依赖于操作系统。当我的应用程序在 Linux 环境中运行时,检查失败。我需要一些东西来检查 Windows 路径的有效性(和绝对性),无论主机操作系统如何。是否有一个类可以帮助我或者我必须创建自己的实现?
我花了一段时间才明白你的要求。 您想要检查路径是否是 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])" +
"(\\.[^.]*)?");
参考:命名文件、路径和命名空间