到目前为止,我的代码如下:

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.有什么主意吗?

推荐答案

为了访问这些文件,必须在 list 文件中授予权限.

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

Android相关问答推荐

约束布局:垂直链中的视图应将内容包裹到空间的1/3

如果我的圆形图像的顶部居中于卡片内部,我如何在其下方画一条弧线?

如何检测低性能 Android 设备进行条件动画渲染?

制作圆形SupportMapFragment

在 kotlin 上向适配器添加绑定视图功能

尽管我在onCreate()期间已经初始化,但仍出现未初始化的late init变量错误

Android Compose 为什么 Checkbox 在父对象可点击时需要 onCheckChanged?

如何在 React Native 中调试网络响应

在 Jetpack Compose 的无状态 Compose 中管理条件逻辑

AttributionSource 需要 android.permission.BLUETOOTH_SCAN 权限的问题

如何在 Jetpack Compose 中添加多个标签

java.lang.String 类型的值 Forbidden 无法转换为 JSONObject

删除项目时延迟列不更新

无法为:app@debug/compileClasspath解析依赖项com.github.dhaval2404:imagepicker-support:1.7.1

如何使用底页,启用和展开父交互

更改 Android SDK 版本 33 后建议在 xml 布局文件中不起作用

compose :为什么以记住启动的列表触发方式与快照不同

单个用户可以在 Firebase 身份验证中将多个电话号码链接到他的帐户吗?

即使我在单选按钮上明确设置了选中状态,RecyclerView 中的单选按钮也会随机取消选中

Android Studio 0.4 在 APK META-INF/LICENSE.txt 中复制的重复文件