[英]Android File.listFiles() returns null
我正在嘗試通過我的 apk 訪問我的 android 文件並(最初)在我的終端上列出它們。 這是我使用的代碼:
File basePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)getAbsolutePath();
File directory = new File(basePath);
System.out.println("" + directory.toString());
File[] directoryContents = directory.listFiles();
我確實成功打印了這個路徑: /storage/emulated/0/Download
,它實際上存在於我的 android 中並且里面有一些文件。
使用以下命令列出該目錄中的文件時:
for (File file : directoryContents)
{
if (file.isFile())
System.out.println("" + file.getName());
else
continue;
}
我得到java.lang.NullPointerException: Attempt to get length of null array
我還在 android 的清單中包含<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
。
如果有幫助的話,我的智能手機可以在 Android 7.0 上運行。
如果從中調用此方法的 File 實例是一個目錄,則listFiles返回一個數組。 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 總是(我猜)返回一個目錄(除非你改變了操作系統的默認值)。 所以唯一出錯的可能是缺少權限;
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS 替換此行實例 Environment.getExternalStorageDirectory()getAbsolutePath() 問題將得到解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.