Вопрос

Я получаю исключение 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 O\FILE.xml.Похоже, что он урезал IP-адрес из пути.Я проверил, что имя пути не содержит пробелов, и если я распечатаю путь к файловому объекту перед синтаксическим анализом, отобразится полный путь.Есть какие-нибудь идеи?

Я использую Java 1.5_14.

Это было полезно?

Решение

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

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

И посмотрим, что произойдет.

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top