场景
项目在windows下访问正常,linux下抛异常,找不到文件。
分析
如果访问的项目文件是这样的:abc/bcd/aa.jpg
,而系统中访问文件的路径是:abc/Bcd/aa.jpg
,两者的区别是二级目录bcd
写成了Bcd
。
如果在windows下开发的小伙伴们,是发现不了错误的,windows文件名大小写不敏感,因此 按照 abc/Bcd/aa.jpg
依然能访问到文件,但是linux文件目录大小写敏感,因此会找不到文件。
解决
在平时的编程中,一定要严格的书写。
还需要注意一点:linux
目录分隔符是 /
,windows下是\
,因此有时在windows存到数据库里的文件路径搬到linux下就会不适用,需要在系统中做处理,从数据库取出路径后,要经过加工,代码如下:
/**
* 修正路径,将 \\ 或 / 等替换为 File.separator
* @param path 待修正的路径
* @return 修正后的路径
*/
public