2012-01-30 193 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