社区
Java
帖子详情
linux环境文件路径中多个斜杠就出错
上官凝轩2017
2017-03-02 09:41:32
最近排查一个错误,找了大半天才找到了问题所在。开发环境是win 7,而测试服务器环境是Linux,在本机测试怎么都是正常,部署到测试服务器之后就怎么都不行。原来是配置文件中一个参数最后多了一个/,java解析完文件的完整路径之后是mybatis\mybatis-3.2.7\mybatis-3.2.7\\test.txt,在win7环境下可以正常读取到,而在Linux环境中就读不到了
,知道了问题所在,却不知道问题的所以然。哪位大侠能给个解释
...全文
1153
2
打赏
收藏
linux环境文件路径中多个斜杠就出错
最近排查一个错误,找了大半天才找到了问题所在。开发环境是win 7,而测试服务器环境是Linux,在本机测试怎么都是正常,部署到测试服务器之后就怎么都不行。原来是配置文件中一个参数最后多了一个/,java解析完文件的完整路径之后是mybatis\mybatis-3.2.7\mybatis-3.2.7\\test.txt,在win7环境下可以正常读取到,而在Linux环境中就读不到了,知道了问题所在,却不知道问题的所以然。哪位大侠能给个解释
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oO临时工Oo
2017-03-02
打赏
举报
回复
建议用 File file = new File(path, subpath); String p = file.getPat(); 这样的方式来组装子路径,这样当一个目录用以现两种方式表示时, path = "/a/b/c/" 或 path = "/a/b/c 不会导致 path + subpaht 可能会多一个分隔符的问题。 另外, System.get("file.separator")可以获取当前系统的路径分隔符。
oO临时工Oo
2017-03-02
打赏
举报
回复
在Linux环境中,路径符用的是“
/
”,Windows中的“\”是不符合程序设计规范的。 在程序中(包括Java和C++),“
\
”表示转义字符的标记。 mybatis\mybatis-3.2.7\mybatis-3.2.7\\test.txt 以上路径在Windows中,由操作系统进行了特殊处理,是没有问题的; 在Linux环境, Java对路径的解析为mybatis
\m
ybatis-3.2.7
\m
ybatis-3.2.7
\\
test.txt 三个转义字符,前2个\m导致路径解析错误,反倒最后一个 \\ 表示的就是 \ ,这个倒正确了
linux
不以
斜杠
开始的
路径
称为,关于
文件
路径
的反
斜杠
正
斜杠
和双
斜杠
问题
1C
文件
路径
为什么要用双
斜杠
因为 \ 在 C/C++/C#
中
是转义前导字符,例如 \n代表换行。如果
路径
中
刚好有类似转义字符开头的,那么就会引起问题,所以
路径
中
的 \必须用 \\ 的形式。2Windows的
路径
中
表示
文件
层级为什么会用反
斜杠
「\」,而UNIX系统都用
斜杠
「/」?Windows 用反
斜杠
(“\”)的历史来自 DOS,而 DOS的另一个传统是用
斜杠
(“/”)表示命令行参数,比如:cd...
linux
系统
斜杠
反
斜杠
用法
斜杠
“/”和反
斜杠
“\”的用法。 网址
路径
: 任何OS :均使用”\“ 例子:http://www.cnblogs.com/sopic/
文件
路径
:
linux
OS: 使用”/“ 例子:/home/user/XXX 特例:
路径
中
某目录名包含空格,在命令行
中
使用cd等命令书写
路径
时,则要在空格前加”\“ ...
绝对
路径
以及相对
路径
中
的
斜杠
和反
斜杠
一、C++
文件
中
的
路径
文件
路径
中
的正
斜杠
和反
斜杠
正
斜杠
,又称左
斜杠
,符号是"/"; 反
斜杠
,也称右
斜杠
,符号是"\"。
文件
路径
的表示可以分为绝对
路径
和相对
路径
: 1、 绝对
路径
绝对
路径
表示相对容易, 例如要打开“C: \Documents andSettings\All Users\My Documents\Downloads\pillow.jpg”,则: Fp =f...
Windows和
Linux
/Unix系统
中
文件
路径
使用总结
一、Microsoft Windows Windows系统
中
以反斜线’\‘表示
文件
路径
,而在编程语言
中
反斜线'\'通常为转义字符。所以在Windows
环境
下的程序
中
,如涉及到
文件
路径
一般需要写成如下形式: "D:\\Microsoft Visual Studio 2010 Workspace\\MFCardReader\\" 其
中
第一个反斜线为转义符,第二个反斜线表
Java
51,408
社区成员
86,092
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章