用于检验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路径合法性的基本检查。注意,这只是一个基础版本,实际应用中可能需要根据具体需求进行扩展和调整。

浙公网安备 33010602011771号