内部ストレージから SD カードにファイルをコピーまたは移動したい。これは、Storage Access Framework (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
ます...