Android更改导出到本地存储的文件的修改日期

时间:2019-01-03 05:23:17

标签: java android file

我正在创建一个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”方法。

0 个答案:

没有答案