如何在Java中扫描不同目录中的文件?

3
如何使用Java扫描不在Java文件目录中的文件?
例如:Java文件位于“C:\ Files \ JavaFiles \ test.java”,但我想要扫描的文件位于“C:\ Data \ DataPacket99 \ data.txt”。
注意:我已经尝试将另一个Java文件放在“C:\ Data”目录中,并将test.java文件用作类,但这并不起作用。它仍然尝试从“C:\ Files \ JavaFiles”目录扫描。

Java 的 IO 在这里有相当多的涵盖:http://java.sun.com/docs/books/tutorial/essential/io/。 - miku
你是使用相对路径还是绝对路径? - Drewen
4个回答

4

使用绝对路径而不是相对路径。

File file = new File("C:\\Data\\DataPacket99\\data.txt");

然后,您可以编写访问该文件对象的代码,使用InputStream或类似方法。

2
我认为你应该转义斜杠;c:\data\DataPacket99\data.txt - extraneon
1
在Java字符串中,绝对不要使用反斜杠作为路径名分隔符! - Carl Smotricz
1
转义字符,或者更好的方法是使用正斜杠。 - Carl Smotricz
除非文件始终预期在同一目录中,否则文件选择器可能比硬编码绝对路径更好。只需使用文件选择器并使用文件的结果句柄进行打开即可。 - illvm

3

您需要在 java.io 相关操作中使用 绝对路径。因此,不要使用 new File("data.txt"),而是使用 new File("C:/Data/DataPacket99/data.txt")。否则,它将相对于当前工作目录,这可能在所有环境或您预期的环境中并非完全相同。


2

您应该使用绝对路径而不是相对路径。

您可以使用File file = new File("C:/Data/DataPacket99/data.txt");,但如果用户需要输入文件路径,则在未来使用文件选择器对话框可能会使您的生活更轻松。


哦,太棒了!(用于文件选择对话框)。感谢 _wdh ! - exodrifter

1
我会尝试这样做:
File file = new File("../../Data/DataPacket99/data.txt");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接