1

抱歉,如果这似乎是一个基本问题,但我似乎找不到任何答案。

我有一些在 Windows 上运行良好的 java 代码。在其中,我有一行说:

File dir = new File("F:\\some\\files\\here");

我在 Linux 上的远程服务器上运行此代码,但现在它给我带来了问题。因为我不知道驱动器名称是什么,所以我将行更改为以下内容(我认为这在 Linux 上不重要?):

File dir = new File("\\some\\files\\here");

这条线没有错误,但后来,我打电话

File[] data = dir.listFiles();

在我的 Windows 代码上这工作正常,但在 Linux 上它返回一个空对象。我进一步研究了一下,似乎我的原始代码没有让我回到 Linux 中的目录。

dir.isDirectory() 

返回falseLinux 代码。

有谁知道可能是什么问题?我也尝试过使用 / 而不是 \ 但同样的问题。

一些附加信息:

我可以访问 dir 方法的任何部分,除了 listFiles() 或 list()。我尝试过的一件事是做 dir.getParent().listFiles()[0]。getParent() 无论如何都应该给我一个目录,但是 listFiles() 调用再次给了我一个空对象,它还告诉我 getParent() 的结果是一个文件,而不是一个目录。

4

1 回答 1

0

您应该使用 File.separator。这是一个独立于平台的工具,因此在 Windows 或 Linux 中构建路径都不会出现任何问题

于 2013-02-21T19:49:39.220 回答