我正在尝试将文件从一个目录移动到另一个目录(在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" />
答案 0 :(得分:3)
// 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
中的字节复制到目标文件。