从路径字符串获取当前OS / Filter无效字符的有效路径字符

时间:2016-03-29 17:50:11

标签: java cross-platform

我想检查包含路径的字符串是否合法。

什么行不通:

  • 我可以使用正则表达式并替换特定操作系统(如Windows)的无效字符;这只适用于一个特定的操作系统
  • 我可以使用Java 7的NIO Paths.get()并捕获异常,但这只会说路径是否有效,我想删除无效字符。

我只在互联网上找到了做上述事情之一的消息来源。什么是令人敬畏的将是像标准库中的getInvalidChars(),它将给我一个系统相关的无效字符列表(或完全相反的,getAllowedChars()或类似的东西)。

Java版本并不重要。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以使用System.getProperty("os.name")来获取操作系统。所以你可以这样做:

String os = System.getProperty("os.name").toLowerCase();
if (os.indexOf("win") >= 0)
    invalidChars("win");
else if (os.indexOf("mac") >= 0)
    invalidChars("mac");
else if (os.indexOf("linux") >= 0)
    invalidChars("linux");

invalidChars(String os)函数将根据给定的操作系统删除无效字符。