2014-02-08 82 views
0

我試圖從移動(包括外部SD卡和手機存儲(內部移動存儲))獲取所有文件。如何從外部SD卡和手機存儲(內部使用移動存儲器)獲取所有文件?

我使用此代碼嘗試Environment.getExternalStorageDirectory()。但從這我只能得到SD卡文件不是手機存儲。

請幫助我如何獲得內存位置路徑或文件。

+0

你可以從文件系統的根目錄開始'/',但除非你做,因爲你根本不會有權限讀取的所有文件。 – Henry

回答

0

此代碼將提供內部文件。

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]); 
       } 


      } 
+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); 
    } 
    } 
} 

如果這不是在下面的代碼工作,然後ü可以給外部路徑和

得到的所有文件。

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

File sdCardDirectory = Environment.getExternalStorageDirectory(); – SuN

相關問題