简体   繁体   English

Android:如何从SD卡列出文件

[英]Android: how to list files from SD card

I want to list all the files on the SD card. 我想列出SD卡上的所有文件。 I use a this code for it: myList = new ArrayList(); 我为此使用以下代码: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());

    }

And I get a nullPointerException for it after I log the name. 登录名称后,我得到一个nullPointerException。 I tried an other file also: 我也尝试了另一个文件:

   file = new File( root_sd ) ;

Ended with the same result. 最终结果相同。

So, how can I list the files properly? 那么,如何正确列出文件? Thx for help! 谢谢!

   ...//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
        }
    });

and the function 和功能

   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;
}

If you want a different layout make an own ArrayAdapter 如果您想使用其他布局,请使用自己的ArrayAdapter

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM