1.需求

Windows环境下路径格式只能为     D:\Desktop\source
Linux环境下路径格式只能为    /data/source

2.结果展示

Linux环境下运行成功,懒得开虚拟机,就不展示截图了。
(有兴趣可以打成jar包去虚拟机测试运行)

3.实现代码

import java.util.Scanner;/*** @version 1.0* @description:   对文件路径进行校验(同时满足Windows和Linux环境)*                  满足的文件路径格式为:  Windows环境下  D:\Desktop\source*                                      Linux环境下    /data/source*                                      路径不能以 '/' or '\\'结尾* @author:* @date 2022/8/3 21:50*/
public class Test2 {public static void main(String[] args) {// 获取系统名   Windows系统还是Linux系统String os = System.getProperty("os.name");System.out.println("系统名 : " + os);System.out.println("请输入路径 : ");Scanner scanner = new Scanner(System.in);String path = scanner.next();// 调用方法进行路径校验// 传入系统名 与 输入路径   符合格式返回原路径,   不符合格式要求重新输入,在返回新输入的满足要求的路径path = verifyPath(os,path);System.out.println("路径格式正确 " + path);}/***  满足两种环境下的路径校验*  如果路径符合要求格式则返回, 若不满足则要求重新输入, 递归校验路径格式, 知道满足要求返回* @param os* @param path* @return*/public static String verifyPath(String os,String path){boolean flag;// Windows和Linux环境的路径正则表达式String windowsPattern = "^[a-zA-Z]:[\\\\]((?! )(?![^\\\\/]*\\s+[\\\\/])[\\w -]+[\\\\/])*(?! )(?![^.]*\\s+\\.)[\\w -]+$";String linuxPattern = "^(/([a-zA-Z0-9][a-zA-Z0-9_\\\\-]{0,255}/)*([a-zA-Z0-9][a-zA-Z0-9_\\\\-]{0,255})|/)";// 判断系统是Windows还是Linuxif(os != null && os.toLowerCase().startsWith("windows")){// 对路径进行校验  返回结果 true or falseflag = path.matches(windowsPattern);}else {//            path = path.replace("\\","/");// Linux环境下正则校验有遗漏 不能拦截如 /data\ , /data/source\等含有‘\’的路径, 所有进行手动判断if(path.contains("\\")){flag = false;}else {flag = path.matches(linuxPattern);}}// 如果flag为flase , 则要求重新输入路径, 并递归校验路径格式  循环套娃, 直到输入格式正确if(flag == false){System.out.println("输入路径格式错误,请重新输入 !!!");System.out.println("(例: Windows下路径格式 : D:\\Desktop\\source_data , Linux下路径格式 : /data/target)");Scanner sc = new Scanner(System.in);path = sc.next();path = verifyPath(os, path);}// 返回满足格式的路径return path;}
}

小结

代码能够实现校验Windows和Linux环境路径下的路径格式,只能通过要求格式的路径,不过不足之处是Linux环境的路径正则表达式有漏洞,不能拦截含有'\'的路径,只能手动拦截这种路径。

Java练习-----2.对Windows和Linux环境下输入的文件路径格式进行校验相关推荐

  1. Windows、linux环境下neo4j下载教程梳理

    Windows.linux环境下neo4j下载,无需注册 安装好java 后,要下载 neo4j ,但是官网打不开,下载不了.虽然网上那么多教程,但是小白的我试了N多命令,很多教程是关于 neo4j- ...

  2. Linux环境下移动一个文件夹下的所有文件到另一个文件夹

    Linux环境下移动一个文件夹下的所有文件到另一个文件夹 研究命令 最近需要把一个环境里的文件,迁移到另一个环境里去,但是两个环境里的数据会有一些同名的子目录,要求不能覆盖数据而是合并,迁移之前我先做 ...

  3. r语言和metawin_如何创建R的HelloWorld包(Windows或Linux环境下)

    1.Windows环境下 1.2安装完后,配置系统的path 1.2.1假定R的安装路径在:D:\Program Files\R\R-2.5.0\bin:Rtools的安装路径在:c:\Rtools\ ...

  4. 查看python库的版本(本质原因、Windows和Linux环境下的操作方法)

    文章目录 1. 潜在误区 2. 本质原因及正确查看方法 2.1 Linux环境下的操作方法 2.2 Windows环境下的操作方法 3. 总结 1. 潜在误区   新来的实习生又让我帮忙解决一个新问题 ...

  5. 【Nginx】Nginx在Windows、Linux环境下的下载安装详细步骤

    文章目录 Nginx下载安装 Nginx-windows安装 下载 安装 启动 Nginx-Linux安装 下载 准备 安装 启动 检查 Nginx常用命令 Nginx下载安装 Nginx跨平台,在w ...

  6. E22 SX1268 LoRa模块传输测试(定点模式)发送接收串口消息 windows与linux环境下C语言代码

    前言 近期因项目需求,对LoRa透传模块进行测试学习. 本次测试的模块是成都ebyte公司的LoRa模块,型号为SX1268.该模块采用串口透传模式. 本博客主要记录了模块的定点传输模式,透传模式相对 ...

  7. Linux环境下FTP传输文件无反应

    前提条件: 本地Windows服务器下,文件上传运行正常,部署jar包Linux环境上,上传文件无反应: 1 在FTP服务中,涉及到客户端和服务器端的连接,连接就会涉及到端口的打开问题: 2 而端口的 ...

  8. Linux环境下实现excel文件转pdf并且实现优化

    最近公司有一个excel转pdf的需求需要实现,话不多说直接上代码! 我所用的环境是ubuntu18版本 excel转pdf在Linux环境中可以使用libreoffice插件进行转换! 1.首先查看 ...

  9. Windows和Linux环境下搭建SVN服务器

    --------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...

最新文章

  1. SQLite | Python3导入csv到SQLite3
  2. hibernate xml配置文件
  3. 在Windows系统中安装WAMP
  4. 如何构建GFS分布式存储平台?理论+实操!
  5. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
  6. 爱奇艺NLP:BiLSTM_CRF的关键词自动抽取
  7. Identity Server 4 - Hybrid Flow - MVC客户端身份验证
  8. linux下加载ISO镜像的方法
  9. Windows XP声卡驱动正常,丢失声音服务的解决
  10. git tag — 标签相关操作
  11. 小爱音箱怎么装app_小爱音箱app
  12. windows下常见php集成环境安装包介绍(updated)
  13. html水晶按钮图片,PS按钮制作高级教程之网页常用水晶按钮
  14. oracle数据投毒,Oracle Database Server 'TNS Listener'远程数据投毒漏洞
  15. 什么是MTTF,MTBF?
  16. 在GT4 Client端EndpointReferenceType的标准序列化方法
  17. 被称为无所不能的Python,到底能干嘛?
  18. When you want to give up, remember why you started.
  19. 排序(一)冒泡排序法
  20. Big Mart Sales:预测销售结果 |Python

热门文章

  1. 二句话就可治疗颈椎病
  2. 元界的前身,虚拟房地产NFT
  3. Linux 4.7内核针对syncookie性能所做的优化
  4. 聚焦用户需求,英韧推出企业级SATA主控及解决方案
  5. 一级计算机怎么给学生备注,2021年全国计算机一级考试重点讲解:(一级WPS)WPS演示中备注添加的两招...
  6. Acer联手纬创在巴西建立代工厂 主要负责14寸本
  7. 【paper 学习】2、Wi-Fi sensing: applications and challenges
  8. avx指令集 matlab,最新版Matlab 2020a修复处理器识别bug 将默认调用最新指令集
  9. 首次写爬虫!,requests库加beautifulsoup(美味汤)爬取学校教室课程表
  10. C语言 逻辑与、逻辑或