2

我收到带有以下代码的 FileNotFoundException:

File dataFile = new File("\\xx.xxx.xx.xxx\PATH\TO\FILE.xml");

if(dataFile.isFile())
{
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    // Printing out File displays full path
    Document doc = db.parse(dataFile);
}

这会导致 FileNotFoundException:\PATH\TO\FILE.xml。它似乎已将 IP 地址从路径中截断。我检查了路径名不包含任何空格,如果我在解析之前打印出 File 对象的路径,则会显示完整路径。有任何想法吗?

我正在运行 Java 1.5_14。

4

2 回答 2

3

尝试改变

File dataFile = new File("\\xx.xxx.xx.xxx\PATH\TO\FILE.xml");

File dataFile = new File("\\\\xx.xxx.xx.xxx\\PATH\\TO\\FILE.xml");

请记住,在 Java 中,\ 会转义下一个字符...

编辑:假设您从该行获得 FNFE:

Document doc = db.parse(dataFile);

那么它意味着datafile.isFile()正在通过,所以文件应该存在。仅出于测试目的,您可能想尝试将其更改为:

Document doc = db.parse(dataFile.toURI().toString());

或者

Document doc = db.parse(new InputSource(new FileReader(dataFile)));

看看会发生什么。

于 2010-01-20T21:11:09.900 回答
0

尝试使用带有方案的完整 url 而不是 unc 路径。

文件://xxx.xxx.xxx.xxx/path/to/file.xml

于 2010-01-20T21:07:54.940 回答