抱歉,如果这看起来像是一个基本问题,但我似乎找不到任何答案。
我有一些在 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()
在 Linux 代码上返回 false
。
有人知道可能是什么问题吗?我也尝试过使用/而不是\但同样的问题。
一些附加信息:
除了 listFiles() 或 list() 之外,我可以访问 dir 方法的任何部分。我试过的一件事是做 dir.getParent().listFiles()[0]。无论如何,getParent() 应该给我一个目录,但是 listFiles() 调用再次给我一个空对象,它还告诉我 getParent() 的结果是一个文件,而不是一个目录。
最佳答案
您应该使用 File.separator。 这是一个独立于平台的工具,因此在 Windows 或 Linux 中构建路径都不会有任何问题
关于java - 如何在 Linux 上用 Java 命名调用目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010852/