2014-02-08 1 views
0

모바일에서 모든 파일을 가져 오려고합니다 (외부 sdcard 및 휴대 전화 저장소 (모바일 메모리가있는 내부)).외부 sdcard 및 휴대 전화 저장소 (모바일 메모리가있는 내부)에서 모든 파일을 가져 오는 방법은 무엇입니까?

이 코드로 시도하십시오. Environment.getExternalStorageDirectory(). 하지만 이걸로 나는 전화 저장 장치가 아닌 SD 카드 파일 만 얻을 수 있습니다.

메모리 위치 경로 또는 파일을 모두 얻는 방법을 알려주십시오.

+0

당신은 파일 시스템의 루트에서 시작할 수'/',하지만 당신은 루트로 모든 파일을 읽을 수있는 권한이 없습니다 그렇게하지 않으면. – Henry

답변

0

이 코드는 내부 파일을 제공합니다.

+0

그것의 아무것도주지 않는다 –

1
File file[] = Environment.getExternalStorageDirectory().listFiles(); 
    recursiveFileFind(file); 

public void recursiveFileFind(File[] file1){ 
int i = 0; 
String filePath=""; 
    if(file1!=null){ 
    while(i!=file1.length){ 
     filePath = file1[i].getAbsolutePath(); 
      if(file1[i].isDirectory()){ 
        File file[] = file1[i].listFiles(); 
      recursiveFileFind(file); 
      } 
     i++; 
     //Log.d(i+"", filePath); 
    } 
    } 
} 

String[] SavedFiles; 
    ArrayList<String> arrList; 
    SavedFiles = getApplicationContext().fileList(); 


    arrList = new ArrayList<String>(); 
    if(SavedFiles != null) 
      { 
       for(int i=0; i<SavedFiles.length; i++) 
       { 
        arrList.add(SavedFiles[i]); 
       } 


      } 
이 아래 코드에서 다음 작동하지 않는 경우 u는 외부 경로와

을 줄 수있는 모든 파일을 얻을.

private void getAllFilesOfDir(File directory) { 
    Log.d(TAG, "Directory: " + directory.getAbsolutePath() + "\n"); 

    final File[] files = directory.listFiles(); 

    if (files != null) { 
     for (File file : files) { 
      if (file != null) { 
       if (file.isDirectory()) { // it is a folder... 
        getAllFilesOfDir(file); 
       } 
       else { // it is a file... 
        Log.d(TAG, "File: " + file.getAbsolutePath() + "\n"); 
       } 
      } 
     } 
    } 
} 
+0

나는이 방법을 알고이 방법에서 나는 이미 모든 파일을 가지고 갔다 그러나 sdcard가 이동할 때 다음 Environment.getExternalStorageDirectory()는 sdcard 절대 경로를 제공한다 그러나 지금 또한 전화 기억 장치에서 모든 파일을 또한 얻고 싶다 . 어떻게 전화 저장 경로를 얻을 수 있습니까 ?? –

+0

이제 확인해보세요. – SuN

+0

파일 sdCardDirectory = Environment.getExternalStorageDirectory(); – SuN

관련 문제