Android如何将媒体图片移动到另一个文件夹?

时间:2011-11-30 06:40:01

标签: android sd-card

在我的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 个答案:

答案 0 :(得分:1)

sd已包含/mnt/sdcard。您实际上是在尝试打开/mnt/sdcard/mnt/sdcard/DCIM/Camera/my_photo.jpg。从/mnt/sdcardsourceImagePath移除destinationImagePath。您可能还需要先create PortFolio/MyGallery个文件夹。

启动API级别8,您也可以使用它来获取默认图片文件夹:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

最后但并非最不重要的是,请确保have permission访问SD卡。