2014-10-31 102 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

相關問題