[英]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_STORAGE
或WRITE_EXTERNAL_STORAGE
系統權限。 例如:
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
如果您需要讀取和寫入文件,則只需要請求WRITE_EXTERNAL_STORAGE
權限,因為它隱式還需要讀取訪問權限。
另請參閱本文檔 。 它將解決您所有有關存儲問題的未來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.