2014-10-31 138 views
0

我已经为这个复制Android的代码,从源到目的地的文件:复制和粘贴文件到另一个文件夹ENOENT

private void move(File src, File dest) { 
    try { 
     InputStream is = new FileInputStream(src); 
     OutputStream os = new FileOutputStream(new File(
       dest.getAbsolutePath() + "/" + src.getName())); 

     byte[] buffer = new byte[1024]; 
     int len; 
     while ((len = is.read(buffer)) > 0) { 
      os.write(buffer, 0, len); 
     } 

     is.close(); 
     os.close(); 

     // delete old file 
     src.delete(); 

    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

但我得到ENOENT(没有suche文件或目录)warnint当我致电

InputStream is = new FileInputStream(src); 

并且没有文件被复制。

这是一个日志,SRC和DST值

src: /storage/emulated/0/DCIM/Camera/IMG_20141026_183702.jpg 
dst:/storage/emulated/0/Pictures/destfolder 

,这是警告消息:

java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20141026_183702.jpg: 
open failed: ENOENT (No such file or directory) 

路径是相同的SRC值的! 有什么问题?

+0

嗯。文件未找到?或者可能会被读取外部存储权限。 – 2014-10-31 21:09:42

+0

不,我已粘贴警告。读取和写入存储权限已设置。 – giozh 2014-10-31 21:10:52

+0

“Pro-tip”:对于dest文件构建使用:new File(dest,src.getName()); – 2014-10-31 21:16:55

回答

0

你确定错误来自FileInputStream吗?

FileOutputStream不创建目录。在打开流之前使用dest.mkdirs(),这可能会解决您的错误。

+0

错误在FileInputStream上,并且目录存在。如果我执行我的代码,我会获得一个空文件夹。 – giozh 2014-11-01 08:39:37

相关问题