2013-02-08 145 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