如何列出android目录中的文件?

新手上路,请多包涵

到目前为止,这是我的代码:

 String path = Environment.getExternalStorageDirectory().toString()+"/Pictures";

        AssetManager mgr = getAssets();

        try {

            String list[] = mgr.list(path);
            Log.e("FILES", String.valueOf(list.length));

            if (list != null)
                for (int i=0; i<list.length; ++i)
                    {
                        Log.e("FILE:", path +"/"+ list[i]);
                    }

        } catch (IOException e) {
            Log.v("List error:", "can't list" + path);
        }

然而,虽然我在该目录中确实有文件,但它会返回 list.length = 0 …有什么想法吗?

原文由 Roger Travis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 271
2 个回答

为了访问这些文件,必须在清单文件中提供权限。

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

试试这个:

 String path = Environment.getExternalStorageDirectory().toString()+"/Pictures";
Log.d("Files", "Path: " + path);
File directory = new File(path);
File[] files = directory.listFiles();
Log.d("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
    Log.d("Files", "FileName:" + files[i].getName());
}

原文由 Yury 发布,翻译遵循 CC BY-SA 4.0 许可协议

我刚刚发现:

new File("/sdcard/").listFiles() 如果没有则返回 null:

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

在您的 AndroidManifest.xml 文件中设置。

原文由 Dan Brough 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题