2011-11-12 8 views
1

私はアンドロイド開発に新しいので、これは簡単なことであれば私を許してください。ディレクトリにファイルをリストする方法は?

私はSDカードのディレクトリにあるすべてのファイルを取得し、スピナーに表示したいと思っていますが、私はちょっと気にしません。 これは私が持っているものであり、それが何か良いものであれば私も知りません。

//creates this directory if its not there??  
File sd = new File("/sdcard/myfolder"); 

       //gets a list of the files 
       File[] sdDirList = sd.listFiles(); 

       //add them to the spinner array (this makes it crash) 
       for(int i=0;i<sdDirList.length;i++) 
       array_spinnerLoad[i] = sdDirList[i].getName(); 

どこが間違っていますか? 使いやすいチュートリアルへの便利なリンクはどこにありますか?それはスピナーする必要がdoesntの、私は

から選択することができますだけでいくつかのリストはあなたに感謝:)

編集 : それはこれでクラッシュをdoesntのが、スピナーアレイは

File[] sdDirList = sd.listFiles(); 
      if (sdDirList != null) 
      { 
       array_spinnerLoad=new String[sdDirList.length]; 

      for(int i=0;i<sdDirList.length;i++) 

      array_spinnerLoad[i] = sdDirList[i].getName(); 
     } 
+1

小さなヒント*(ここに問題があるのか​​どうかは分かりません)*:SDカードのようなものへのパスはハードコードしないでください。これらのパスはデバイスによって異なります。代わりに['Environment.getExternalStorageDirectory()'](http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory())を使用してください。すべてのデバイスのプライマリマスストレージへの有効なパスが返されます。 –

+0

yep nullポインタ例外 – user1033558

答えて

4

が満たされていません/sdcard/myfolderが存在しないか、ディレクトリでない場合、listFilesnullを返します。あなたはおそらくNPEでクラッシュしています。 exists()isDirectory()を使用して、何が間違っているかを診断できます。 (さらに、それをテストすることができますsdDirList != null

P.S.例外など、クラッシュに関する詳細を投稿するために、より正確な回答を得るのに役立ちます。

+0

私はこれに新しいことを言ってくれてありがとう、ありがとう。 logcatはこの行を示しています。array_spinnerLoad [i] = sdDirList [i] .getName();ヌルポイントを作成する – user1033558

+0

@ user1033558 - それは 'sdDirList'が' null'だった場合に起こります - あなたは存在しない配列の最初の要素にアクセスしようとしています。 ( 'sdDirList'が最初の要素として' null'を持っていても、 'listFiles'が配列の' null'値を返さないと起こります。) –

+0

おかげでted、私は手作業でファイルをディレクトリに入れました。そこには何もありません。私はチュートリアルが必要だと思うが、havntはまだ理解している。 – user1033558

関連する問題