【问题标题】:Relative path using File.separator使用 File.separator 的相对路径
【发布时间】:2019-06-09 08:38:31
【问题描述】:

我的代码中有硬编码路径。现在,我必须使用 File.separator(或任何其他类),这样我的路径才能在 Windows 或 Linux 机器上运行。

为什么我的新代码不起作用?帮我解决这个问题。

这是我的旧代码(适用于 Windows):

readFile("./Use-cases/"+duplicatedExcelText);

这是我的导致异常和错误的新代码:

readFile(File.separator+"."+File.separator+ "Use-cases"+File.separator +
 duplicatedExcelText);

【问题讨论】:

  • 什么异常和错误???
  • FileNotFoundException...
  • 您的旧代码以“.”开头的文件路径,您的新代码没有。
  • 您编写的旧代码以“./Use-cases/”开头,而新代码以“File.separator + .+”开头,即“/”。把它倒过来
  • 每当你构建一个字符串时,请准备好将其打印出来,或者使用调试器并进入 readFile 以查看构建的字符串是什么样的。

标签: java linux path


【解决方案1】:

这解决了我的问题:

readFile("."+ File.separatorChar + "Use-cases" + 

File.separatorChar + duplicatedExcelText);

【讨论】:

    【解决方案2】:

    问题是你构造了一个字符串:

    '\' + "." ...

    最后。

    Windows 不喜欢相对路径!

    根据this,您可以将/ 用于所有操作系统。仅当您想向人类用户显示最终路径(以避免混淆)时,才建议使用 File.separator。

    【讨论】:

      猜你喜欢
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 2011-08-24
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      相关资源
      最近更新 更多