用于检验Windows下输入路径的合法性

在Windows系统中,路径的合法性主要涉及到几个关键点:路径字符串不能为空、路径中不能包含非法字符(如"<"">"":""/""\\""|""?""*",在文件或目录名中可能还需要避免使用如" "空格、""引号等特殊字符,尽管这些在某些情况下是允许的,但最好避免)、路径字符串不能仅包含驱动器号(如C:`)而没有指定路径或文件名。

以下是一个简单的Java程序,用于检验Windows下输入路径的合法性:

java复制代码
  public class WindowsPathValidator {
   
  // 定义一个包含非法字符的字符串,用于检查
  private static final String ILLEGAL_CHARS = "<>:\"/\\|?*";
   
  /**
  * 验证Windows路径的合法性
  *
  * @param path 要验证的路径
  * @return 如果路径合法,则返回true;否则返回false
  */
  public static boolean isValidWindowsPath(String path) {
  // 检查路径是否为空
  if (path == null || path.isEmpty()) {
  return false;
  }
   
  // 检查路径是否仅包含驱动器号(如C:)
  if (path.length() == 2 && Character.isLetter(path.charAt(0)) && path.charAt(1) == ':') {
  return false;
  }
   
  // 检查路径中是否包含非法字符
  for (int i = 0; i < path.length(); i++) {
  if (ILLEGAL_CHARS.indexOf(path.charAt(i)) != -1) {
  return false;
  }
  }
   
  // 路径通过所有检查,认为是合法的
  return true;
  }
   
  public static void main(String[] args) {
  // 测试样例
  String[] testPaths = {
  "C:\\Users\\Example\\Documents",
  "D:\\Temp\\file.txt",
  "C:",
  "C:\\<invalid>",
  "C:\\Users\\Example\\My Documents\\file.txt", // 注意:空格在Windows路径中是允许的
  "C:\\Users\\Example\\file?.txt",
  "C:\\Users\\Example\\file*.txt"
  };
   
  for (String path : testPaths) {
  System.out.println("Path: " + path + " is valid? " + isValidWindowsPath(path));
  }
  }
  }

测试样例和结果

  • C:\Users\Example\Documents:合法
  • D:\Temp\file.txt:合法
  • C::不合法(仅包含驱动器号)
  • C:\<invalid>:不合法(包含非法字符<
  • C:\Users\Example\My Documents\file.txt:合法(尽管包含空格,但在Windows中是允许的)
  • C:\Users\Example\file?.txt:不合法(包含非法字符?
  • C:\Users\Example\file*.txt:不合法(包含非法字符*

这个程序简单明了地实现了对Windows路径合法性的基本检查。注意,这只是一个基础版本,实际应用中可能需要根据具体需求进行扩展和调整。

posted @ 2024-09-08 22:45  奥兰王子  阅读(40)  评论(0编辑  收藏  举报