【问题标题】:Filename include slash punctuation and gives Exception in thread "main" java.io.FileNotFoundException: foo/boo/en_en.json (No such file or directory)文件名包含斜线标点符号并在线程“main”java.io.FileNotFoundException 中给出异常:foo/boo/en_en.json(没有这样的文件或目录)
【发布时间】:2017-06-07 14:12:35
【问题描述】:

我正在尝试创建一个新文件作为 boo/en_en.json 到 foo 文件夹,但 IntelliJ Idea 认为 boo 是一个目录并且 en_en .json 是一个文件。我应该如何解决这个问题?

我的代码是:

val target = new PrintWriter(new File(s"foo/$name-$locale.json"))

并且名称包括斜线标点符号。

操作系统是 MacOs Sierra。

【问题讨论】:

  • 好吧,据我所知,/ MacOs 上的文件分隔符,不是吗?您甚至可以通过其他方式创建具有此名称的文件吗?
  • 你为什么会考虑在文件名中使用正斜杠?
  • 你好@Hulk 这是项目的要求。我可以在我的计算机上手动创建一个文件,但我不能使用该代码。
  • 你好@Dummy上面的答案相同。请检查
  • @Hulk 抱歉,我在标签中添加了 scala。我在 scala 中使用了 Java 库。

标签: java scala file macos-sierra slash


【解决方案1】:

您不应该能够通过 java api 在 OSX 上创建名称中包含 / 的文件。您可以在查找器中手动执行此操作,但它会在实际保存到磁盘的文件名中以: 静默替换/。如果您希望它在查找器中显示为/,则使用: 保存它。任何访问该文件的程序都必须使用: 引用它

这是由于遗留 mac 文件系统路径和 unix 文件系统路径之间的差异。

但是,在文件名中包含/ 是一个可怕的想法,因为它令人难以置信的混乱。

【讨论】:

    【解决方案2】:

    阻止它不是intellij,你不能在你的文件名中加上斜线,底层api会阻止它。

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多