簡體   English   中英

Android File.listFiles() 返回 null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM