Parsen von XML Kürzt Dateipfad
-
21-09-2019 - |
Frage
Ich bin ein FileNotFoundException mit dem folgenden Code empfangen:
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);
}
Dies führt zu einer FileNotFoundException: \ path \ to \ file.xml. Es scheint aus dem Weg, die IP-Adresse abgeschnitten zu haben. Ich habe überprüft, dass der Pfad keine Leerzeichen enthält und wenn ich den Pfad des File-Objekts vor Parsing ausdrucken, wird der vollständige Pfad angezeigt. Irgendwelche Ideen?
Ich bin mit Java 1.5_14.
Lösung
Versuchen Sie,
File dataFile = new File("\\xx.xxx.xx.xxx\PATH\TO\FILE.xml");
File dataFile = new File("\\\\xx.xxx.xx.xxx\\PATH\\TO\\FILE.xml");
nicht vergessen, dass in Java, \ entkommt das nächste Zeichen ...
Bearbeiten : Unter der Annahme, dass Sie eine FNFE aus der Leitung bekommen:
Document doc = db.parse(dataFile);
dann bedeutet es, dass der datafile.isFile()
ist vorbei, und so die Datei existieren sollte. Gerade für Prüfzwecke, möchten Sie vielleicht versuchen, das zu ändernde:
Document doc = db.parse(dataFile.toURI().toString());
oder
Document doc = db.parse(new InputSource(new FileReader(dataFile)));
Und sehen, was passiert.
Andere Tipps
Versuchen Sie, eine vollständige URL mit einem Schema anstelle von UNC-Pfad zu verwenden.
Datei: //xxx.xxx.xxx.xxx/path/to/file.xml