关于文件操作中,在windows上正常,在linux上“No such file or directory”异常

关于文件操作中,在Windows上正常,在linux上“No such file or directory”异常

最近在项目中负责文件系统的功能编写。包括文件的上传、下载和部分文件的预览功能实现。

在开发过程中程序能够正常运行,但是项目部署到了测试环境linux系统时,出现文件上传后无法下载的情况,后面查看日志,发现报“No such file or directory”,因为在开发环境中是正常的,所以一时没有发现问题所在,后面通过详细的查看日志,发现是文件路径出错了,才了解到是Windows和linux系统的文件路径有差别,在Windows中,”\“和”/“都能正常识别,而在Linux系统中,只能使用”/“来代表文件路径。后面通过学习,发现早已有解决这个问题,File类中的separator就是用来表示路径分隔符的,可以完美适应系统,所以我把代码中的”\“都改成了File.separator,系统就正常运行了。

比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写:

File file1 = new File ("C:\tmp\test.txt");

在Linux下则是这样的:

File file2 = new File ("/tmp/test.txt");

如果要考虑跨平台,则最好是这么写:

File myFile = new File("C:" + File.separator + "tmp" + File.separator + "test.txt");

关于文件操作中,在windows上正常,在linux上“No such file or directory”异常

上一篇:蓝牙耳机连接windows后断连关机


下一篇:WPF 给类库设置设计时使用的资源字典