2013-10-10 3 views
-1

열 때마다 내 앱이 왜 충돌하는지 알아 내는데 어려움이 있습니다. for 루프를 주석 처리하지 않은 경우에만 해당됩니다. 나는 그러나 다른루프로 인해 안드로이드 앱이 작동을 멈추는 경우

How to programmatically move, copy and delete files and directories on SD?

한 디렉토리에서이 부분을 파일을 복사하기 위해 여기에이 아이디어를 사용하고

은 (내가 아이들 문자열을 사용하여,이 방법은 위의 링크에서와 같은 방법을 모두 시도 등)

for (File file : files) 
{ 
    CopyFile(file, target); 
} 

계속 내 응용 프로그램을 중단시키는 원인이됩니다. 나는 단지이 부분을 주석 처리하고 애플 리케이션이 잘 실행된다. (파일을 액세스하지 않기 때문에 아무것도 복사하지 않는다.)

아이디어가 있으십니까?

private void CopyFile(File source, File target) throws IOException { 



    if (source.isDirectory()){ 

     File[] files = source.listFiles(); 
     for (File file : files) 
     { 
      CopyFile(file, target); 
     } 

    } else { 
     InputStream in = new FileInputStream(source); 
     OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory()); 

     byte[] buf = new byte[1024]; 
     int len; 
     while ((len = in.read(buf)) > 0){ 
      out.write(buf, 0, len); 
     } 
     in.close(); 
     out.close(); 

    } 
+1

외부 저장소에서 읽고 쓸 수있는 권한이 있습니까? –

+0

여러 가지 이유가있을 수 있습니다. 스택 추적을 게시 할 수 있습니까? – Heinrisch

+0

stacktrace와'for' 루프가있는 곳에 'Class'를 게시하십시오. – Emmanuel

답변

0

앱이 제어하는 ​​하위 디렉토리를 제외하고는/data/data에서 아무 것도 읽을 수 없습니다.

/data/data/*packagename*/files 

는 Context.getFilesDir 의해 반환 경로()

/data 

가 Environment.getDataDirectory 의해 반환 경로()이다.

여기서 정확히 파일을 예상 하시겠습니까? 원래 파일은 어떻게 되었을까요?

+0

정말요? 흥미 롭 군. 루트 탐색기와 같은 것들은 어떻게됩니까? – user1324674

관련 문제