Java练习-----2.对Windows和Linux环境下输入的文件路径格式进行校验
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环境下输入的文件路径格式进行校验相关推荐
- Windows、linux环境下neo4j下载教程梳理
Windows.linux环境下neo4j下载,无需注册 安装好java 后,要下载 neo4j ,但是官网打不开,下载不了.虽然网上那么多教程,但是小白的我试了N多命令,很多教程是关于 neo4j- ...
- Linux环境下移动一个文件夹下的所有文件到另一个文件夹
Linux环境下移动一个文件夹下的所有文件到另一个文件夹 研究命令 最近需要把一个环境里的文件,迁移到另一个环境里去,但是两个环境里的数据会有一些同名的子目录,要求不能覆盖数据而是合并,迁移之前我先做 ...
- 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\ ...
- 查看python库的版本(本质原因、Windows和Linux环境下的操作方法)
文章目录 1. 潜在误区 2. 本质原因及正确查看方法 2.1 Linux环境下的操作方法 2.2 Windows环境下的操作方法 3. 总结 1. 潜在误区 新来的实习生又让我帮忙解决一个新问题 ...
- 【Nginx】Nginx在Windows、Linux环境下的下载安装详细步骤
文章目录 Nginx下载安装 Nginx-windows安装 下载 安装 启动 Nginx-Linux安装 下载 准备 安装 启动 检查 Nginx常用命令 Nginx下载安装 Nginx跨平台,在w ...
- E22 SX1268 LoRa模块传输测试(定点模式)发送接收串口消息 windows与linux环境下C语言代码
前言 近期因项目需求,对LoRa透传模块进行测试学习. 本次测试的模块是成都ebyte公司的LoRa模块,型号为SX1268.该模块采用串口透传模式. 本博客主要记录了模块的定点传输模式,透传模式相对 ...
- Linux环境下FTP传输文件无反应
前提条件: 本地Windows服务器下,文件上传运行正常,部署jar包Linux环境上,上传文件无反应: 1 在FTP服务中,涉及到客户端和服务器端的连接,连接就会涉及到端口的打开问题: 2 而端口的 ...
- Linux环境下实现excel文件转pdf并且实现优化
最近公司有一个excel转pdf的需求需要实现,话不多说直接上代码! 我所用的环境是ubuntu18版本 excel转pdf在Linux环境中可以使用libreoffice插件进行转换! 1.首先查看 ...
- Windows和Linux环境下搭建SVN服务器
--------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...
最新文章
- SQLite | Python3导入csv到SQLite3
- hibernate xml配置文件
- 在Windows系统中安装WAMP
- 如何构建GFS分布式存储平台?理论+实操!
- oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
- 爱奇艺NLP:BiLSTM_CRF的关键词自动抽取
- Identity Server 4 - Hybrid Flow - MVC客户端身份验证
- linux下加载ISO镜像的方法
- Windows XP声卡驱动正常,丢失声音服务的解决
- git tag — 标签相关操作
- 小爱音箱怎么装app_小爱音箱app
- windows下常见php集成环境安装包介绍(updated)
- html水晶按钮图片,PS按钮制作高级教程之网页常用水晶按钮
- oracle数据投毒,Oracle Database Server 'TNS Listener'远程数据投毒漏洞
- 什么是MTTF,MTBF?
- 在GT4 Client端EndpointReferenceType的标准序列化方法
- 被称为无所不能的Python,到底能干嘛?
- When you want to give up, remember why you started.
- 排序(一)冒泡排序法
- Big Mart Sales:预测销售结果 |Python
热门文章
- 二句话就可治疗颈椎病
- 元界的前身,虚拟房地产NFT
- Linux 4.7内核针对syncookie性能所做的优化
- 聚焦用户需求,英韧推出企业级SATA主控及解决方案
- 一级计算机怎么给学生备注,2021年全国计算机一级考试重点讲解:(一级WPS)WPS演示中备注添加的两招...
- Acer联手纬创在巴西建立代工厂 主要负责14寸本
- 【paper 学习】2、Wi-Fi sensing: applications and challenges
- avx指令集 matlab,最新版Matlab 2020a修复处理器识别bug 将默认调用最新指令集
- 首次写爬虫!,requests库加beautifulsoup(美味汤)爬取学校教室课程表
- C语言 逻辑与、逻辑或