تحليل XML اقتطاع مسار الملف
-
21-09-2019 - |
سؤال
أنا أتلقى 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 خارج المسار. لقد راجعت أن اسم المسار لا يتضمن أي مسافات ، وإذا قمت بطباعة مسار كائن الملف قبل التحليل ، يتم عرض المسار الكامل. أيه أفكار؟
أنا أقوم بتشغيل 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
لا تنتمي إلى StackOverflow