Какой лучший/самый простой способ переименовать файл во внутренней памяти приложения? Я нахожу немного странным, что есть метод Context.deleteFile()
, но нет функции "переместить" или "переименовать". Должен ли я пройти весь путь, сохранив содержимое файла, удалив его, создав новый и затем скопировав содержимое в этот файл? Или есть способ скопировать файл поверх существующего файла?
Обновление (30 августа 2012 г.):
В соответствии с предложенным ниже решением, которое я не могу заставить работать:
- У меня есть файл с именем shoppinglists.csv
- Затем я создаю новый файл с именем shoppinglists.tmp и копирую содержимое из shoppinglists.csv И некоторые новые записи в него. Файл shoppinglist.tmp является новой версией файла shoppinglists.csv.
- Затем я удаляю старый файл shoppinglists.csv.
- Затем мне нужно переименовать файл shoppinglists.tmp в shoppinglists.csv.
Я пробовал это:
ctx.deleteFile("shoppinglists.csv"); <--- delete the old file
File oldfile = new File("shoppinglists.tmp");
File newfile = new File("shoppinglists.csv");
oldfile.renameTo(newfile);
Однако это не работает. После удаления файла() больше ничего не происходит, и у меня остается новый файл shoppinglists.tmp.
Что мне не хватает?
NB: в LogCat нет ошибок или чего-то еще.