开发时候存储的路径用的是File.separator
来生成分隔符,
这样使用开发没问题,下载都是正常的,但是项目部署在服务器上,下载失效了,发现是\
的问题,识别不了,
window 与 linux 中的 不同操作系统中路径分隔符是不相同的,开发环境是window,File.separator
生成的是\
,而测试环境是Linux,生成的是/
,测试环境用的是开发环境的库,所以识别不了window生成的\
,下载的时候处理一下,我试了一下,window可以识别/
和\
,直接在后端替换掉
//str为路径
str=str.replaceAll("\\\\", "/");
文件路径
在进行 springboot 项目开发以及打包为 jar 包发布时, 可能会有两种情况下生成文件路径不一致的问题, 有一种获取路径的方法可以使两种环境下都可以正确获取到项目或jar包的根目录
String root = System.getProperty("user.dir");
String path = root +"\\out.txt";
// 这个可以得到当前jar包运行时的目录。
当项目打jar包使用java -jar xxx.jar运行时,jar会作为一个单独的文件运行,文件不会生成在jar包中。
所以使用System.getProperty(“user.dir”);获取当前jar所运行的路径(和jar文件所在的同级目录),使用该路径作为根目录存放项目中生成的文件。
获取resouces路径
ResourceUtils.getFile
ResourceUtils.getFile在Linux获取不到路径
ResourceUtils.getFile