1)Linux下路径和文件名都是区分大小写的
abc/bcd/aa.jpg和abc/Bcd/aa.jpg是两个不同的文件路径,window访问没问题,Linux大小写敏感会导致找不到文件
2)盘符及目录分隔符的区别
父子目录及目录与文件的分隔符,Windows是,而Linux是/,java编码最好使用File.separator(能够自动识别Widow或者Linux,使用想用的分隔符)
两个不同路径分隔符,window下;,Linux下为:,java编码最好使用File.pathSeparator
3)个人实践
File file = new File("C:download/pic/1.jpg")可以被java识别,因此web项目中properties文件中配置文件存放根路径,
Windows下为C:download,Linux下为/download,数据库中仅存放/pic/1.jpg这样的文件访问路径(这种分隔符也符合web资源的请求)
4)在linux 下java 的默认的文件写入权限仅局限在执行目录之下。如果需要在其他目录写入文件或者文件夹 需要手动设置以下权限。(有时间测试一下)
File f=new File("/home/sxl/out");
f.setWritable(true, false);