Я столкнулся с проблемой в следующем коде. Я пытаюсь удалить папку и все ее содержимое. Иногда это работает, а иногда нет.
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-карте, но когда этот код выполняется, успех возвращается как ложный, потому что 'файлы' равны нулю. Почему это ноль? !!
Я просто не могу этого понять. Если я полностью выключил приложение и затем запустил его, оно может обнаружить файлы и каталог и успешно удалить их. В противном случае, если я некоторое время пользуюсь приложением, а затем запускаю код, он считает, что каталог и эти файлы отсутствуют.
Кто-нибудь сталкивался с подобными проблемами с delete()
?