簡體   English   中英

無法從SD卡讀取目錄或文件

[英]Unable to read directories or files from a sd card

我是android開發的新手,但我嘗試從SD卡讀取目錄,但未成功。 以下是我為實現此目的而編寫的代碼

File sdcard = Environment.getExternalStorageDirectory();           
if(sdcard.exists()) {
    Log.d("Sd card", "Sd card exist");
    File[] file_names = sdcard.listFiles();
    for(File x : file_names) {
        Log.d("File Name",x.getName());
    }
}

控件通過了if條件,然后在“ for each”循環行中得到了NullPointerException。 函數sdcard.listFiles()可能返回null。 我有一個帶有許多文件夾和文件的SD卡。 實際上,我必須為SD卡上可用的目錄“附件”創建一個目錄文件對象。 我還嘗試了以下代碼來實現相同的目的。

File file = new File(android.os.Environment.getExternalStorageDirectory() +     File.separator + "Attachments");

File file = new File(Environment.getExternalStorageDirectory() + File.separator + "Attachments");

在我調用函數file.exists()的兩個代碼上,它返回false。

我還通過以下代碼檢查了SD卡是否已安裝。

String sdCardAvail = Environment.getExternalStorageState();
 if(sdCardAvail.equals(Environment.MEDIA_MOUNTED))
        Log.d("Card status", "Sd card Available");

上面的代碼已在日志目錄上打印了“可用的SD卡”。 因此,請幫助我了解我是在糾正還是遺漏任何東西。

謝謝....

為了在外部存儲上讀取或寫入文件,您的應用必須獲得READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE系統權限。 例如:

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ...
</manifest>

如果您需要讀取和寫入文件,則只需要請求WRITE_EXTERNAL_STORAGE權限,因為它隱式還需要讀取訪問權限。

另請參閱本文檔 它將解決您所有有關存儲問題的未來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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