将图像从 DCIM/相机重命名(移动)到 Android 中的另一个目录(由其他应用程序创建)

问题描述 投票:0回答:1

我正在尝试为自己创建一个应用程序,用于对外部存储中以前拍摄的照片进行分类。 我想将它们移动到指定的文件夹,但没有成功。我有点迷失在这里应该使用什么?悬而未决的意向?使用 createWriteRequest() 方法?我还没有找到任何指向此主题的分步教程。我读过我必须逐个文件请求权限才能有权修改它。但其他应用程序如何轻松做到这一点呢? (就像在 TotalCommander 中一样,我可以轻松地重命名文件)您能否展示一个简单的代码如何处理这个问题?

SDK 33 安卓 14

清单:

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

我在 lastModifiedTime 变量中存储参考时间代码。

首先尝试对同一目录进行简单的重命名过程:

活动:

        String path = Environment.getExternalStorageDirectory().toString()+"/DCIM/Camera";
        Log.d("Files", "Path: " + path);
        File directory = new File(path);
        File[] files = directory.listFiles(File::isFile);
        if (files != null){
            for (File file : files){
                if (file.lastModified() > lastModifiedTime){
                    Log.d("Files", file.getName());
                    File newfile = new File(path+"/"+file.getName()+"_2");
                    Log.d("Files", "new: "+newfile.getName());
                    if (file.renameTo(newfile)){
                        Log.d("Files", "OK");
                    } else {
                        Log.d("Files", "ERROR");
                    };
                }
            }
        }
android permissions rename
1个回答
0
投票

您需要像 TotalCommander 一样使用

MANAGE_EXTERNAL_STORAGE

参见安卓文档: 管理存储设备上的所有文件

© www.soinside.com 2019 - 2024. All rights reserved.