Не могу удалить файл и папку в Android 8 и выше - PullRequest
0 голосов
/ 09 апреля 2019

Я не могу удалить файл и папку в Android 8 и выше. file.delete () возвращает false всеми возможными способами

File csvFile = new File(Environment.getExternalStorageDirectory().getPath() + "/Notes/help.csv");
File txtFile = new File(Environment.getExternalStorageDirectory().getPath() + "/Notes/MyFile.txt");
folder = new File(Environment.getExternalStorageDirectory().getPath() + "/Notes");

if (csvFile.exists()) csvFile.delete();
if (txtFile.exists()) txtFile.delete();
if (folder.exists()) folder.delete();

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Это может быть проблема с правами доступа.

Начиная с Android 8, READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE необходимо запрашивать отдельно.Таким образом, даже если вы можете прочитать файл, возможно, вы не сможете его удалить.

Если вы уверены, что у вас нет проблем с правами доступа, измените код на

try {
   Files.delete(theFileName);
} catch (Exception e) {
   log.e(TAG, e.getMessage());
}

.указать причину, по которой удаление не удалось.

0 голосов
/ 09 апреля 2019

Когда вы делаете new File(), это ничего не создает, это просто объект, который указывает на файл (немного похоже на путь). Если бы вы записали в этот файловый объект, он бы существовал, а затем вы могли бы удалить его.

Другими словами, я думаю, что вы не можете удалить его, потому что вы никогда не создавали его.

...