Синтаксический анализ XML-пути к файлу - PullRequest
2 голосов
/ 20 января 2010

Я получаю 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.

Ответы [ 2 ]

3 голосов
/ 21 января 2010

Попробуйте изменить

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)));

И посмотрим, что получится.

0 голосов
/ 21 января 2010

Попробуйте использовать полный URL со схемой вместо unc path.

Файл: //xxx.xxx.xxx.xxx/path/to/file.xml

...