我正在创建一个android应用程序,并添加了一个选项来保存图像和视频等媒体,我需要能够将文件的修改日期更改为当前日期和时间。我一直在使用File方法来保存文件。我已经看到这是Android中.setLastModified()方法的已知问题,但无法找到任何其他解决方案。至少在我的设备(Google Pixel 2)上,此方法似乎没有任何作用。它将只有原始日期。
我什至尝试使用RandomFileAccess()方法做一些“肮脏的方法”(我将在下面显示代码),但是没有运气。
File rootPath = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), "imageAlbum");
if(!rootPath.exists()) {
rootPath.mkdirs();
}
File localFile = new File(rootPath,filename.toLowerCase());
然后我使用firebase和.getFile()方法。
这就是我所说的“肮脏”方法。
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile(rootPath + "/" + finalFilename.toLowerCase(), "rw");
long length = raf.length();
raf.setLength(length + 1);
raf.setLength(length);
raf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
localFile.setLastModified(System.currentTimeMillis());
但还是没有运气。
编辑:
这是我用于Firebase的代码。
String finalFilename = filename;
storageReference.getFile(localFile).addOnCompleteListener(new OnCompleteListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<FileDownloadTask.TaskSnapshot> task) {
if (task.isSuccessful()) {
localFile.setLastModified(System.currentTimeMillis());
{
我尝试在调用firebase方法之前和之后使用“ .setLastModified”方法。