2013-12-23 26 views
2

我是新來的android編程。
我試圖用getExternalStorageDirectory()
獲得的路徑我的Nexus設備上的文件,但它在所有Android getExternalStorageDirectory不返回任何文件

代碼返回沒有文件:

File path = new File(Environment.getExternalStorageDirectory() +""); 
path.mkdirs(); 
if (path.exists()) { 
FilenameFilter filter = new FilenameFilter() { 
      @Override 
      public boolean accept(File dir, String filename) { 
       File sel = new File(dir, filename); 
       // Filters based on whether the file is hidden or not 
       return (sel.isFile() || sel.isDirectory()) 
        && !sel.isHidden(); 

      } 
     }; 
String[] fList = path.list(filter); 
// flist return null 
} 
+0

該文件,你正在試圖獲得? – TheLittleNaruto

+0

我想獲取像下載或圖像這樣的文件夾我曾嘗試過的任何返回null我想探索所有文件和目錄 –

回答

5

在你的情況下,你可以獲取所有數據通過執行以下代碼:

ArrayList<String> filesList = new ArrayList<String>(); 
String sd_card = Environment.getExternalStorageDirectory().toString(); 
file = new File(sd_card) ;  
File list[] = file.listFiles(); 
for(int i=0; i< list.length; i++) { 
    filesList.add(list[i].getName()); 
} 

現在filesList將所有文件的列表,你可以用它根據自己的需要。

請不要忘記在清單中添加權限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
+0

謝謝我會嘗試並回來。 –

+0

它返回的路徑超出路徑劑量不存在。因爲nexus沒有SD卡,所以他們要去內部storeg –

+1

當我使用你的代碼文件路徑return/storeg/sdcard/external_SD時,我添加權限放入路徑是錯誤的。沒有這樣的目錄。 –

2

添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>"到AndroidManifest.xml

+1

我添加這個權限仍然沒有運氣 –

相關問題