我想将文件从内部存储器复制或移动到SD卡。我通过存储访问框架(SAF)和DocumentFile类来完成此操作...

复制是基于流的,并且DocumentFile没有像File类那样的函数来设置上次修改日期。

我知道,我将文件移动/复制到sd卡中,所以我知道我创建了本地文件。有了此信息,是否可以以某种方式更新DocumentFile的基础文件的最后修改日期?

看来您不能在不丢失最后修改日期的情况下将文件从内部存储移动/复制到SD卡...

阅读-工作

public long lastModified(DocumentFile file, Context context)
{
    long lastModified = 0;
    final Cursor cursor = context.getContentResolver().query(file.getUri(), null, null, null, null);
    try
    {
        if (cursor.moveToFirst())
            lastModified = cursor.getLong(cursor.getColumnIndexOrThrow(DocumentsContract.Document.COLUMN_LAST_MODIFIED));
    }
    finally
    {
        cursor.close();
    }

    return lastModified;
}

正在写-不起作用
public boolean setLastModified(DocumentFile file, Context context, long time)
{
    ContentValues updateValues = new ContentValues();
    updateValues.put(DocumentsContract.Document.COLUMN_LAST_MODIFIED, time);
    int updated = context.getContentResolver().update(file.getUri(), updateValues, null, null);
    return updated == 1;
}

这失败,并出现java.lang.UnsupportedOperationException: Update not supported异常...

最佳答案

list 中可能需要权限“android.permission.WRITE_USER_DICTIONARY”

关于android - 存储访问框架-设置本地DocumentFile的最后修改日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35744654/

10-12 00:22