в моем приложении для Android. Я использую диспетчер загрузки системы для загрузки фотографии, после ее получения обрабатываю ее, а затем мне нужно переместить ее в другое место. если я просто скопирую его, он отлично работает, если я попытаюсь переместить его/удалить, я получаю исключение, о котором он не может быть перемещен.Невозможно переместить файл после того, как DownloadManager завершает загрузку
Failed to delete original file '/data/user/0/com.android.providers.downloads/cache/a3133p2930-9.jpg' after copy to '/data/data/com.XXXXX.testharness/app_appdata/images/one/two/three/6/a3133p2930.jpg'
также попытался:
1) удалить его из менеджера загрузки, прежде чем пытаться переместить его 2) установить место назначения непосредственно к целевой директории, но получил ошибку, я могу использовать только общедоступные внешние папки. 3) попробовал использовать JAVA renameTo и Apache commons moveFile
это фрагмент кода, который показывает соответствующие части того, что я делаю.
любые идеи?
оценил
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
String uriString = c.getString(
c.getColumnIndex(
DownloadManager.COLUMN_LOCAL_URI));
String uri2String = c.getString(
c.getColumnIndex(
DownloadManager.COLUMN_URI));
String localFileString = c.getString(
c.getColumnIndex(
DownloadManager.COLUMN_LOCAL_FILENAME));
File from = new File(localFileString);
File to = new File(appDataDir, localString);
File to2 = new File (appDataDir, localString + "/" + getFileNameFromUrl(uri2String));
if (!to.exists()) {
if (to.mkdirs()) {
Log.d(LCAT, "Directory Created");
}
}
dm.remove(downloadId);
//boolean a = from.renameTo(to2);
try {
FileUtils.copyFile(from, to2);
} catch (Exception e) {
Log.d(LCAT, "rename success? " + e.getMessage());
}
сообщение отредактировал видеть пожалуйста – mmlooloo
спасибо @mmlooloo –