2012-01-30 141 views
0

我试图从一个目录文件移动到另一个(SD卡)移动/重命名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中错误...

编辑:

我已经加入这两种权限到我的清单FIL E:

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

当你说“不行”时,到底发生了什么?另外,您是否添加了WRITE_EXTERNAL_STORAGE权限? – 2012-01-30 15:21:39

+0

我更新了一下我的问题。我已添加权限...没有任何反应,它不仅仅移动文件,也不会给我任何错误。 – 2012-01-30 15:29:45

回答

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

,那么你在做什么,正在尝试来连接该到Environment.getExternalStorageDirectory()。这不起作用。 content://media/external/images/media/635既不是相对文件系统路径,也不是绝对文件系统路径。这是一个Uri

如果您想将图像从Uri复制到本地文件,请使用ContentResolverUri代表的图像上得到InputStream,然后使用Java I/O从InputStream字节复制到目标文件。

+1

你是对的。我改变了uri到绝对路径,一切都按需要工作。 – 2012-01-30 16:46:58