在SD卡中移动/重命名文件

时间:2012-01-30 14:37:38

标签: java android file-io android-sdcard

我正在尝试将文件从一个目录移动到另一个目录(在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中给我任何错误......

修改

我已将两项权限添加到我的清单文件中:

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

1 个答案:

答案 0 :(得分:3)

// this the uri, something like content://media/external/images/media/635

您当时正在尝试将其连接到Environment.getExternalStorageDirectory()。这不行。 content://media/external/images/media/635既不是相对文件系统路径,也不是绝对文件系统路径。这是Uri

如果您希望将图片从Uri复制到本地文件,请使用ContentResolverInputStream代表的图片上获取Uri,然后使用Java I / O将InputStream中的字节复制到目标文件。