يقوم File.delete() بإرجاع خطأ على الرغم من الوجود والتحقق من الأذونات
بعد مزيد من التحقيق، يبدو أن هناك خطأ خفيًا موجود في Java، مما قد يمنع الحذف الناجح للملف حتى عند استيفاء جميع الشروط الضرورية. لحل هذه المشكلة، من المهم استدعاء System.gc() قبل حذف الملف.
يدمج مقتطف التعليمات البرمجية التالي هذا الحل في طريقة writeContent الأصلية:
private void writeContent(ملف ملف، سلسلة fileContent) {
FileOutputStream إلى؛
يحاول {
to = new FileOutputStream(file);
to.write(fileContent.getBytes());
to.flush();
to. Close();
} قبض على (FileNotFoundException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} أخيراً {
يحاول {
to. Close(); // أغلق الدفق كما كان من قبل
System.gc(); // اتصل بـ System.gc() لفرض جمع البيانات المهملة
} قبض (IOException ه) {
// TODO التعامل مع IOException
}
}
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3