Я хочу удалить файл, а иногда и могу, иногда я этого не делаю. Я делаю это:Удаление файла в Java
String filePath = "C:\\Users\\User\\Desktop\\temp.xml";
File f = new File(filePath);
if (f.exists())
{
if(f.delete())
System.out.println("deleted");
else
System.out.println("not deleted");
}
Я думаю, что когда я не могу удалить его, это потому, что он все еще открыт где-то в приложении. Но как я могу закрыть его, если я не использую FileInputStream
или BufferedReader
? Потому что, если я использую эти классы, я не вижу, существует ли файл. Или я могу?
Редактировать: Я только что нашел свою ошибку. Я делал это:
XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(new FileOutputStream(filePath));
, а затем, закрыв только в eventWriter
.
И я должен сделать это:
FileOutputStream fos = new FileOutputStream(filePath);
XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(fos);
, а затем:
eventWriter.close();
fos.close();
Вы говорите о разрешениях? Я проверил это, и у меня есть разрешение писать, читать и исполнять. – user2144555
Вы также отметили, что еще один процесс по-прежнему содержит дескриптор файла? – Fildor
Нет .. Как я могу это увидеть? – user2144555