Я столкнулся с проблемой в следующем коде. Я пытаюсь удалить папку и все ее содержимое. Иногда это работает, а иногда нет.
boolean success = false;
String directory = Environment.getExternalStorageDirectory().toString();
directory += "/.SID/Downloads/DC0601";
File path = new File(directory);
File[] files;
try
{
files = path.listFiles();
if (files == null)
{
success = path.delete();
}
else
{
for (int i = 0; i < files.length; i ++)
{
File currentFile = files[i];
if (currentFile != null)
currentFile.delete();
}
success = path.delete();
}
}
catch (Exception e)
{
success = false;
Log.e("deleteData Exception: ", e.toString());
}
Здесь происходит то, что в некоторых случаях каталог «DC0601» существует и содержит файлы на SD-карте, но когда этот код запускается, успех возвращается как false, потому что «файлы» равны нулю. Почему ноль?!!
Я просто не могу этого понять. Если я полностью закрою приложение, а затем запущу его, оно обнаружит файлы и каталог и сможет успешно их удалить. В противном случае, если я использую приложение какое-то время, а затем запускаю код, он думает, что этого каталога и этих файлов нет.
Кто-нибудь сталкивался с подобными проблемами с delete()?