为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取Android目录中的文件列表?

如何获取Android目录中的文件列表?

摇曳的蔷薇 2023-02-23 10:56:10
我想列出目录中的所有图像以制作画廊。下面的示例使用 Intent 获取目录路径。我已经尝试过该listFiles()方法,但它返回 null。protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //Permision Request    ActivityCompat.requestPermissions(MainActivity.this,            new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},            1);    initialize();}//For the Intent to get Folderprivate void initialize() {    Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);    i.addCategory(Intent.CATEGORY_DEFAULT);    startActivityForResult(Intent.createChooser(i, "Choose directory"), 9999);}public void onActivityResult(int requestCode, int resultCode, Intent data) {    switch(requestCode) {        case 9999:            //File myFile = new File(data.getData().toString());            String path = data.getData().toString();            //View the path            Log.i("Test", "Result URI " + path);            Toast.makeText(getApplicationContext(), "Result URI " +data.getData().toString(), Toast.LENGTH_LONG).show();            //Creating new File for the directory            File directory = new File(path);            File[] files = directory.listFiles();            Log.d("Files", "Size: "+ files.length);            for (int i = 0; i < files.length; i++)            {                //Show the name of the files in the directory                Log.d("Files", "FileName:" + files[i].getName());            }            break;    }}在清单中我也有读取外部存储的权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

下面的示例使用 Intent 来获取目录路径。

不,它是用来ACTION_OPEN_DOCUMENT_TREE获取文档树的。这可能代表也可能不代表文件系统上的目录。

Uri使用返回的最简单方法ACTION_OPEN_DOCUMENT_TREE是使用DocumentFile.fromTreeUri(). 然后,您可以调用listFiles()它来获取DocumentFile指向该树中文档(和子树)的对象。


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 285 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号