2016-03-30 121 views
0

我想知道爲什麼listFiles()方法返回null?我使用這個字符串作爲文件路徑:/ storage/UsbDriveA。爲什麼listFiles()方法返回null?

這裏是代碼我目前使用:

List<String> filesInFlashDrive = addListOfFiles("/storage/UsbDriveA/"); 

public ArrayList<String> addListOfFiles(String directoryPath) { 
    File f = new File(directoryPath); 
    f.mkdirs(); 
    Log.i("FileBrowserActivity", "File Value:" + f); 
    Log.i("FileBrowserActivity", "List of files:"+f.listFiles()); 
    File[] file = f.listFiles(); 
    /*File[] file = f.listFiles(new FileFilter() { 
     @Override 
     public boolean accept(File pathname) { 
      return pathname.toString().endsWith(".pdf") ? true : false; 
     } 
    });*/ 
    ArrayList<String> arrayFiles = new ArrayList<String>(); 
    if (file.length == 0) 
     return null; 
    else { 
     for (int i=0; i<file.length; i++) 
      arrayFiles.add(file[i].getName()); 
    } 

    return arrayFiles; 
} 

爲什麼listFiles()方法返回null?

+0

'我正在使用該字符串作爲文件路徑:/ storage/UsbDriveA.'可能,該路徑不存在。 –

+0

我檢查過,以確保它存在,並且當我插入USB驅動器時確實存在。 – user268397

回答

3

首先,您的設備或模擬器可能沒有這樣的路徑。很少有設備可以。

其次,因爲這似乎是removable storage,所以您在Android 4.4及更高版本的設備上沒有任何文件系統訪問權限。

+0

我仔細檢查過,以確保我的手機上有我正在測試的路徑,而且我也這樣做。 – user268397