0

我有一个 Java GUI。用户使用 JFileChooser 对话框选择一个文件,包括文件的路径。路径显示在文本框中,例如

\\developDB\directory\subdirectory\file.info

当我使用用户选择的路径(并显示在文本框中)通过 InputStream 访问文件时,它找不到文件。哎呀。

现在我将文本框中的所有反斜杠加倍。IE

\\developDB\\directory\\subdirectory\\file.info

并使用文本框中的路径再次使用 InputStream 读取,现在找到该文件。又来了。

您可能认为这样做的原因可能是反斜杠必须用另一个反斜杠转义,但这不是这里的原因。在内部,Java 再次将反斜杠加倍以进行转义。

此外,当我尝试通过网络浏览器访问文件时,反斜杠必须加倍。

我在想这可能与两个原因有关:

  • JFileChooser 出于某种原因正在“吃掉”反斜杠。如何避免这种情况?
  • JFileChooser 工作正常,但存储文件的服务器的服务器管理员为路径名设置了一些命名约定。如果是这样,我如何才能了解 Java 程序中的这些标准,以便我可以通过编程方式将反斜杠加倍。

希望我没有让你太困惑;-)

4

1 回答 1

0

如果您使用 Java 标准 IO 库(java.io.FileInputStream 等),您只能使用正斜杠,Java 将在运行平台上翻译挂起。

于 2013-01-21T16:48:11.417 回答