2014-10-31 6 views
0

나는 사본이 안드로이드 코드를 소스에서 대상으로 파일했습니다 :복사 및 붙여 넣기 파일

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

흠. 파일을 찾을 수 없습니까? 또는 외부 저장소 권한을 읽을 수 있습니다. –

+0

아니요. 경고를 붙여 넣습니다. 읽기 및 쓰기 저장에 대한 권한이 설정되었습니다. – giozh

+0

"Pro-tip": dest 파일 빌드 용 : 새 파일 (dest, src.getName()); –

답변

0

오류가 FileInputStream에서 발생 했습니까?

FileOutputStream은 디렉토리를 만들지 않습니다. 스트림을 열기 전에 dest.mkdirs()를 사용하면 오류를 해결할 수 있습니다.

+0

오류가 FileInputStream에 있고 디렉토리가 존재합니다. 내 코드를 실행하면 빈 폴더가 생깁니다. – giozh