Android как переместить картинки мультимедиа в другую папку? - PullRequest
1 голос
/ 30 ноября 2011

В моем приложении для Android я хочу скопировать медиа-изображения в другую папку (в моем коде ниже я пытаюсь скопировать изображение из "/mnt/sdcard/DCIM/Camera/my_photo.jpg" в "/ mnt / sdcard / PortFolio")/ MyGallery /. Я пробовал это с помощью следующего кода, но он не работает. Кто-то мне в этом помогает ??? Есть ли другой способ? ??

File sd = Environment.getExternalStorageDirectory();
            File data = Environment.getDataDirectory();
            if (sd.canWrite()) {
                String sourceImagePath= "/mnt/sdcard/DCIM/Camera/my_photo.jpg";
                String destinationImagePath= "/mnt/sdcard/PortFolio/MyGallery/";
                Log.d("destinationImagePath", ""+destinationImagePath);
                File source= new File(data, sourceImagePath);
                File destination= new File(sd, destinationImagePath);
                Log.d("before copying", "");
                if (source.exists()) {
                    FileChannel src = new FileInputStream(source).getChannel();
                    FileChannel dst = new FileOutputStream(destination).getChannel();
                    dst.transferFrom(src, 0, src.size());
                    src.close();
                    dst.close();
                }

1 Ответ

1 голос
/ 30 ноября 2011

sd уже содержит /mnt/sdcard. Вы на самом деле пытаетесь открыть /mnt/sdcard/mnt/sdcard/DCIM/Camera/my_photo.jpg. Удалить /mnt/sdcard из sourceImagePath и destinationImagePath. Возможно, вам также потребуется сначала создать папку PortFolio/MyGallery.

Начиная с уровня API 8, вы также можете использовать его, чтобы получить папку изображений по умолчанию:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

И последнее, но не менее важное: убедитесь, что у вас есть разрешение на доступ к SD-карте.

...