【问题标题】:Android: how to list files from SD cardAndroid:如何列出 SD 卡中的文件
【发布时间】:2014-05-17 13:12:28
【问题描述】:

我想列出 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 ) ;

以同样的结果结束。

那么,如何正确列出文件?谢谢帮忙!

【问题讨论】:

  • 外置存储目录不是外置SD卡注意
  • 感谢您的链接,该解决方案似乎比我的更容易。虽然出现了同样的问题。 'new File("sompath")' 返回 null,但我确定路径是正确的 '(Environment.getExternalStorageDirectory().toString())'

标签: android filesystems


【解决方案1】:
   ...//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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多