2017-08-01 32 views
1

我的應用程序工作正常,但在重新安裝後,出現「嘗試獲取空數組長度」的錯誤,而我的dob文件夾中充滿了以pi_開頭的文件。現在我收到文件 - 無效。嘗試讀取null數組,但數組包含多個文件名

任何人都可以幫助錯誤可以是什麼?

感謝

File path = new File(Environment.getExternalStorageDirectory().toString() + "/dob"); 

    if (path.exists()) { 
     Toast.makeText(this, "Dob folder exists", Toast.LENGTH_SHORT).show(); 
    } else { 
     Toast.makeText(this, "Dob folder does not exist", Toast.LENGTH_SHORT).show(); 

    } 

    File[] files = path.listFiles(); 

    if (files != null) { 
     Toast.makeText(this, "files length: " + files.length, Toast.LENGTH_SHORT).show(); 

     piStarters = new String[files.length]; 
     int db = 0; 

     for (File file : files) { 
      Toast.makeText(this, ":" + file.toString() + ":", Toast.LENGTH_LONG).show(); 
      if (file.getName().startsWith("pi_")) { 

       piStarters[db] = file.getName(); 
       Toast.makeText(this, "I need this (pistarter): " + piStarters[db], Toast 
         .LENGTH_SHORT) 
         .show(); 
       db++; 
      } 
     } 
    } else { 
     Toast.makeText(this, "files - Null ", Toast 
       .LENGTH_SHORT).show(); 
    } 

清單:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
+0

你是否實現了運行時權限? –

+0

是我的清單文件包含: <使用權限android:name =「android.permission.READ_EXTERNAL_STORAGE」 –

+0

什麼是您的Android操作系統? –

回答

1

您必須執行Requesting Permissions at Run Time訪問手機存儲否則Android操作系統棉花糖及以上不會讓你的應用程序來訪問存儲

所以你需要實現存儲訪問的運行時權限模型

Follow the link for an example

+0

謝謝我嘗試 –

+0

我很高興我可以幫助,快樂編碼 –

+1

它現在的作品,thx了! –