2013-02-08 178 views
0

所以我試圖製作一個文件管理器的Android應用程序,允許我複製和粘貼選定的文件。我在網上找到了一個有用的方法,但它似乎不適合我。如果您可以提供我如何能解決我的問題的任何建議,將是巨大的,謝謝複製和粘貼android內的文件

公共無效副本(文件SRC,文件DST)拋出IOException異常{

InputStream in = new FileInputStream(src); 
OutputStream out = new FileOutputStream(dst); 

// Transfer bytes from in to out 
byte[] buf = new byte[1024]; 
int len; 
while ((len = in.read(buf)) > 0) { 
    out.write(buf, 0, len); 
} 
in.close(); 
out.close(); 

}

+1

*它似乎不工作*,你是否得到特定的異常?粘貼Stacktrace在這裏得到更好的幫助 – iTech 2013-02-08 23:09:13

+0

謝謝,我得到一個文件沒有發現異常在我的文件,然後它說開放失敗EISDIR(是一個目錄),這是否意味着我不能複製文件到另一個目錄,因爲它可以'打開它們? – user2052283 2013-02-08 23:14:36

回答

1

有沒有錯,你的功能,它會簡單地複製一個文件(或重命名)從一個位置到另一個。

參考你所得到(is a directory)錯誤,我相信你specifing目標中錯誤的參數,它必須是一個文件名目錄

因此,要使用此功能正常,你可以做一些事情像:

copy(new File("Director1","filename"), new File("Directory2","filename")); 

或者你可以用它來rename文件(不是有效的解決方案),如

 copy(new File("Director1","filename"), new File("Directory1","new_filename")); 
+0

感謝您的幫助,但我似乎也無法得到這個工作,應用程序崩潰 – user2052283 2013-02-08 23:36:05

+0

什麼是例外?我假設你在參數中指定了* real *文件夾名稱,因爲這裏的代碼僅用於說明。此外,請確保您的應用程序具有所需的權限,即'android.permission.WRITE_EXTERNAL_STORAGE' – iTech 2013-02-08 23:37:38

+0

copy(selectedFiles.get(0),new File(currentLocation.getPath(),「myFile.txt」));,這是我用它來調用它的代碼,selectedFiles是一個文件的ArrayList,currentLocation是我希望將文件粘貼到的目錄,如果你可以告訴我這個,非常感謝, – user2052283 2013-02-08 23:38:04