Переместить / переименовать файл на SD-карте - PullRequest
0 голосов
/ 30 января 2012

Я пытаюсь переместить файл из одного каталога в другой (на SD-карте)

У меня есть URI файла и способ его перемещения:

Uri selectedImage = imageReturnedIntent.getData(); // this the uri, something like content://media/external/images/media/635

File sdcard = Environment.getExternalStorageDirectory();
File from = new File(sdcard, selectedImage);
File to = new File(sdcard, "myNewDir/mynewfile.jpg");
from.renameTo(to);

Но это не работает и не дает мне никакой ошибки в Logcat ...

Edit:

Я добавил оба разрешения в мой файл манифеста:

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

1 Ответ

3 голосов
/ 30 января 2012
// this the uri, something like content://media/external/images/media/635

То, что вы затем делаете, пытается соединить это с Environment.getExternalStorageDirectory().Это не будет работать.content://media/external/images/media/635 не является ни относительным путем к файловой системе, ни абсолютным путем к файловой системе.Это Uri.

Если вы хотите скопировать изображение из Uri в локальный файл, используйте ContentResolver, чтобы получить InputStream на изображении, представленном Uriзатем используйте Java I / O для копирования байтов из InputStream в целевой файл.

...