Поскольку ответ так очевиден (file.delete()
), я подозреваю, что у вас на самом деле возникли проблемы с его удалением.То есть, file.delete()
вернул false
, и файл на самом деле не был удален из файловой системы диска.
В этом случае вы не можете удалить его, если у вас еще есть указатели на этот файл.Например, если в вашем коде Java есть файл InputStream
или OutputStream
, вы не сможете удалить файл, если не вызываете close()
в потоках.
Итак, чтобы решить эту проблему, вам нужно убедиться, что вы вызываете close()
для любых InputStream
и OutputStream
в блоке finally
блока try
, где вы используете потоки.
Например
File file = new File(name);
OutputStream output = null;
try {
output = new FileOutputStream(file);
// Write to output here ...
file.delete(); // Will always fail because output is not closed.
} finally {
if (output != null) try { output.close(); } catch (IOException logOrIgnore) {}
}
file.delete(); // Will succeed after close of output.