首页 > 系统相关 >用于检验Windows下输入路径的合法性

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

时间:2024-09-08 22:47:51浏览次数:11  
标签:合法性 Users Windows 路径 file path txt Example

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

标签:合法性,Users,Windows,路径,file,path,txt,Example
From: https://www.cnblogs.com/wzihan/p/18403659

相关文章

  • Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
    经过上一章节的介绍,相信大家对Redis已经有了大致的认知,今天主要给大家详细讲解Redis在Windows、Linux、Docker下的安装过程。01Windows下面给大家介绍三种在Windows环境下安装Redis的方式:官方建议方式、可执行文件方式、脚本方式。1、官方建议方式Redis官方是不支持直接......
  • Windows NoiLinux
    在Windows下使用NoiLinuxubuntu-noi-v2.0.iso下载ubuntu-noi-v2.0.iso打开VMWare,创建新的虚拟机->自定义(高级)->下一步->下一步->安装程序光盘映像文件(iso),选择下载的ubuntu-noi-v2.0.iso后面直接跳过就行了,可能需要你留意的是分配处理器内核(2+2即可),分配......
  • windows加载PE文件的流程
    读取PE文件当一个PE文件被执行时,Windows的创建进程函数(CreateProcess)首先被调用,负责为新进程创建虚拟地址空间。操作系统从磁盘读取PE文件,将其头部内容(DOS头、PE头和节表)载入内存,以获取该文件的结构和装载信息。检查PE文件有效性操作系统首先会检查PE文件的合法性,比如验证......
  • Windows 11 登录后黑屏,只有一个可以移动的鼠标
    Windows11登录后黑屏,只有一个可以移动的鼠标,但是还能打开任务管理器,点击任务管理器顶部的“文件”>“运行新任务”按钮,按以下步骤操作:→输入:msconfig(按下Enter键)点击上面的“服务”勾选下面的“隐藏所有Microsoft服务”(请务必勾选)点击“全部禁用”。然后回到任务管......
  • 家电制造集团智能制造数字化转型实施路径与举措:智能产品、智能生产、智能物流、智慧管
    随着科技的飞速发展,智能制造已成为家电制造业转型升级的重要方向。为了提升产品竞争力、优化生产流程、增强供应链协同效率并实现精细化管理,家电制造集团需全面推进智能制造数字化转型。本文将从智能产品设计、智能生产优化、智能物流管理、智慧管理体系、数据驱动决策、组织文......
  • 在Windows 10中,系统通常会有以下默认用户账户:在Windows 10中,默认用户账户有以下几种权
    在Windows10中,系统通常会有以下默认用户账户:Administrator(管理员):这是一个系统内置的账户,具有最高的权限。默认情况下,这个账户在安装Windows10时是禁用的,不会显示在登录屏幕上。Guest(来宾):这个账户允许临时用户使用计算机,没有访问用户数据或进行系统更改的权限。默认情......
  • ubuntu 和windows用samba服务器实现数据传输
    1,linux安装samba服务器sudoapt-getinstallsambasamba-common2,linux配置权限,修改目录权限,linux下共享的文件权限设置。sudochmod777/home/lark-R3.添加samba用户 sudosmbpasswd-a lark4,配置共享目录打开/smb.conf在文件末尾添加如下信息: vim/et......
  • 更改 Windows Kits (SDK) 安装路径
    Windowskits默认情况下会装在安装VisualStudio所在磁盘的根目录,当VisualStudio没有安装在c盘的时候,在工具盘看到一个WindowsKit的目录,会导致强迫症患者不能忍。今天探索了下操作步骤:运行regedit打开注册表。找到 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mi......
  • MySQL8.0Windows安装说明
    目录MySQL8.0Windows安装说明下载并安装压缩包初始化数据安装服务操作服务设置密码windows界面服务管理dll库缺失问题将MySQL添加全局路径MySQL8.0Windows安装说明下载并安装压缩包下载地址:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-winx64.zip安装:解压......
  • Java项目使用exe4j生成exe可执行文件在无Java环境Windows电脑运行
    1.准备工作①官网下载exe4j,官网地址:https://www.ej-technologies.com/download/exe4j/files②确保已经安装了JDK,并且配置了环境变量,否则会导致打不开③exe文件在安装目录的bin文件夹下2.直接点下一步3.这里选择JAR打包EXE,点击一步4.需要输入项目名称并指明输......