java - 如何在 Linux 上用 Java 命名调用目录?

标签 java linux file directory filepath

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

我有一些在 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/

相关文章:

bash - 使用 shell 脚本查找特定文件类型的文件

java - Java 中的相对文件引用

python - 使用 Psycopg2 保持 Python 和 Postgresql 之间持续连接的最佳/最佳实践

mysql - 基于文件访问mysql数据库

javascript - 仅使用javascript检查音频文件是否存在

python - 使用 awk/sed/bash 切割 python 输出

java - 重新排列数组中的数字

java - 为什么 scalac 采用 Java vararg 方法而不是单个参数

java - 并发:Condition.awaitNanos() 不释放锁

c - C : A struct and a function的命名约定