سؤال

أنا أتلقى 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top