Android:如何从SD卡列出文件

时间:2014-05-17 13:12:29

标签: android filesystems

我想列出SD卡上的所有文件。我使用这个代码:        myList = new ArrayList();

    String root_sd = Environment.getExternalStorageDirectory().toString();
    file = new File( "storage/" + root_sd ) ;
    Log.e(myLog, file.getName());
    File list[] = file.listFiles();

    for( int i=0; i< list.length; i++)
    {
        myList.add( list[i].getName() );
        Log.e(myLog, list[i].getName() + " : " + list[i].getTotalSpace());

    }

在我记录名称后,我得到了一个nullPointerException。我还尝试了另一个文件:

   file = new File( root_sd ) ;

结果相同。

那么,我该如何正确列出文件?求救!

1 个答案:

答案 0 :(得分:0)

   ...//initing the variables

   String fileName = Environment.getExternalStorageDirectory().toString();
    title.setText(fileName);

    ArrayList<String> FilesInFolder = GetFiles(fileName);

    mList.setAdapter(new ArrayAdapter<String>(getActivity() , android.R.layout.simple_list_item_1 , FilesInFolder));

    mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            // Clicking on items
        }
    });

和功能

   public ArrayList<String> GetFiles(String DirectoryPath) {
    ArrayList<String> MyFiles = new ArrayList<String>();
    File f = new File(DirectoryPath);

      f.mkdirs();
      File[] files = f.listFiles();
      if (files.length == 0)
          return null;
      else {
          for (int i=0; i<files.length; i++)
              MyFiles.add(files[i].getName());
      }

    return MyFiles;
}

如果您想要一个不同的布局,请创建一个自己的ArrayAdapter