最近有个在页面上传Excel文件至服务器指定目录并进行数据校验、最后入库及进行进一步处理的应用情境,我写好代码在模拟环境下测试,完全没问题;但客户试用的时候,却老是报告“No such file or diretory ”的异常,上传不了。后来发现是文件路径的问题。我的模拟测试环境是windows+tomcat,而客户的环境是linux+tomcat,文件路径的分隔符在windows系统和linux系统中是不一样。当直接使用绝对路径时,跨平台会暴出“No such file or diretory”的异常。

  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");

File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用。
separatorChar
  public static final char separatorChar
  与系统有关的默认名称分隔符。此字段被初始化为包含系统属性 file.separator 值的第一个字符。在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\'。
separator
  public static final String separator
  与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar。
pathSeparatorChar
  public static final char pathSeparatorChar
  与系统有关的路径分隔符。此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表 形式给定的文件序列中的文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。
pathSeparator
  public static final String pathSeparator
  与系统有关的路径分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 pathSeparatorChar。

关于File.separator 文件路径:window与linux下路径问题(“No such file or diretory ”异常解决方案)...相关推荐

  1. 关于File.separator 文件路径:wind与linux下路径问题 .

    最近有个在页面上传Excel文件至服务器指定目录并进行数据校验.最后入库及进行进一步处理的应用情境,我写好代码在模拟环境下测试,完全没问题:但客户试用的时候,却老是报告"No such fi ...

  2. Windows与Linux之间海量文件的传输与Linux下大小写敏感问题

    Windows与Linux之间海量文件的传输与Linux下大小写敏感问题 mount.cifs 支持通过网络文件系统挂载,不过需要安装cifs-utils,也可通过mount -t cifs挂载,详细 ...

  3. php linux下保存文件路径怎么写,linux下php导入带图片的word文档转为html,图片保存下来生成路径。...

    linux下yum install libreoffice yum install libreoffice-headless 如果出现异常,在页面上不一定表现出来,而是页面卡着一直没响应,通过apac ...

  4. 【文件技巧-File.separator 文件分隔符】

    在Windows下的路径分隔符 (\) 和在Linux下的路径分隔符 (/) 是不一样的,当直接使用绝对路径时, 跨平台会报 No Such file or diretory 异常.因此在编程当中应当 ...

  5. windows 文件在linux下运行显示no such file or directory

    1.产生问题的原因: linux系统和windosw系统对文件换行的处理不一样导致的,windows文件换行使用'\r\n',linux中使用'\n'. 2.解决办法 使用vi/vim打开文件,修改文 ...

  6. linux多路径策略配置,linux 多路径配置

    首先介绍一下什么是多路径(multi-path)?先说说多路径功能产生的背景,在多路径功能出现之前,主机上的硬盘是直接挂接到一个总线(PCI)上,路径是一对一的关系,也就是一条路径指向一个硬盘或是存储 ...

  7. linux rpm mysql 路径_linux基础-linux 下 安装 rpm 格式 的 mysql

    在Linux操作系统下,安装MYSQL有两种方式: 一种tar安装方式, 另外一种是rpm安装方式. 这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的ta ...

  8. window和linux下Redis 安装和使用

    Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统 ...

  9. linux下目标文件的类型6,Linux下文件类型

    Linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 .so 为共享库,是shared object,用于动态连接的,和dll差不多 .a为 ...

最新文章

  1. mysql,mairadb启动脚本
  2. SAP Fiori应用里对国际化RTL需求(right-to-left)的支持
  3. linux怎么检测文件完整性,Linux如何基于AIDE检测文件系统完整性
  4. 【kafka】一次磁盘故障后消费者无法消费
  5. Android SIP软电话,通话录音,VoIP电话,linphone电话
  6. 忆贵州三年的教书编程岁月:不弛于空想,不骛于虚声
  7. Day 23 What Drivers You Crazy
  8. 电脑怎么录制屏幕?教你电脑录屏的方法
  9. 46、建筑防烟排烟系统的维护保养要求
  10. 我的学习笔记001--private protected public internal mxx
  11. iOS 应用内购买(In-App Purchase)之开发
  12. ItextAsian中文字体
  13. electron vue点击按钮关闭_electron+vue制做桌面应用--自定义标题栏最大/小化和关闭...
  14. 契约锁助力大型能源组织“产-运-储-销-交易”文件电子签
  15. 【干】探索自己的云米冰箱-2
  16. cogs 1588. [USACO Feb04]距离咨询 倍增LCA
  17. 给歌曲配置和弦的技巧
  18. 全国行政区划数据——五级(省市区县乡镇村),74万条数据
  19. 探索区块链C端市场 艺术品、卡牌、音乐皆可NFT
  20. 氧自由基抗氧化能力(ORAC)活性检测试剂盒常见问题解答

热门文章

  1. Python flask 特殊装饰器 @app.before_request 和 @app.after_request 以及@app.errorhandler介绍
  2. 记一次阿里云服务器CPU长期100%发现被被种挖矿程序解决的过程(一摸一样,只是没查到怎么进来的,入侵)
  3. Python list合并(列表合并),dict合并(字典合并)
  4. Python之smtpd及smtplib(邮件服务器及客户端)
  5. 高并发高可用的 架构实践
  6. C#单元测试如何查看输出的调试信息?
  7. 虽然我们可能不想对元素应用3D变换,可我们一样可以开启3D引擎
  8. 「最有用」的特殊大数据:一文看懂文本信息系统的概念框架及功能
  9. STM32之SDIO例程
  10. Java程序员必备:常见OOM异常分析