【问题标题】:copy and paste files within android在android中复制和粘贴文件
【发布时间】:2013-02-08 22:59:48
【问题描述】:

所以我试图制作一个允许我复制和粘贴选定文件的文件管理器 Android 应用程序。我在网上找到了一种有用的方法,但它似乎对我不起作用。如果您能就如何解决我的问题提供任何建议,那就太好了,谢谢

public void copy(File src, File dst) throws 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();

}

【问题讨论】:

  • 如何它似乎不起作用,您是否遇到特定异常?在此处粘贴 Stacktrace 以获得更好的帮助
  • 谢谢,我在我的文件上发现一个文件未找到异常,然后它说打开失败 EISDIR(是一个目录),这是否意味着我不能将文件复制到另一个目录,因为它不能打开它们?

标签: java android


【解决方案1】:

您的函数没有任何问题,它只是将一个文件(或重命名)从一个位置复制到另一个位置。

参考您收到的错误(is a directory),我相信您在目标中指定了错误的参数,它必须是文件名而不是目录

因此,要正确使用此功能,您可以执行以下操作:

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

或者你可以用它来rename一个文件(不是有效的解决方案),例如

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

【讨论】:

  • 感谢您的帮助,但我似乎也无法让它工作,应用程序崩溃了
  • 有什么异常?我假设您在参数中指定 real 文件夹名称,因为此处的代码仅用于说明。另外,请确保您的应用具有所需的权限,即android.permission.WRITE_EXTERNAL_STORAGE
  • copy(selectedFiles.get(0), new File(currentLocation.getPath(),"myFile.txt"));,这是我用来调用它的代码,selectedFiles 是一个 ArrayList files 和 currentLocation 是我希望将文件粘贴到的目录,如果您能就此提出建议,将不胜感激,谢谢
  • 您需要添加异常Stacktrace,才能知道您的应用崩溃的原因。
猜你喜欢
  • 2015-02-06
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 2015-12-06
  • 2012-05-21
相关资源
最近更新 更多