如何在文件系统中获取最后修改的日期和时间?

Posted

技术标签:

【中文标题】如何在文件系统中获取最后修改的日期和时间?【英文标题】:How to get last modified date and time in Filesystem? 【发布时间】:2016-05-26 05:45:10 【问题描述】:

您好,我正在尝试获取文件的最后修改日期和时间,该文件存储在我的本地设备内存目录中。是否可以在文件系统中获取 lastmodifieddate?

到目前为止,我一直在尝试使用以下代码

 function checkLastModifiedDate()
 window.resolveLocalFileSystemURL(cordova.file.
    externalRootDirectory 
    +"Download/SMU/File Repo/SMUDE_Connect_User_Guide.pdf",  
        function(fs) 
            LastModifiedDateOfFile(fs);
    , failFiles);  

function failFiles(error) 
    if (error.code == FileError.NOT_FOUND_ERR)
        toastr.error('User guide manual not exists.', 'Information')
    else if (error.code == FileError.SECURITY_ERR)
        console.log("Message : SECURITY_ERR")
    else if (error.code == FileError.ABORT_ERR)
        console.log("Message : ABORT_ERR")
    else if (error.code == FileError.NOT_READABLE_ERR)
        console.log("Message : NOT_READABLE_ERR")
    else if (error.code == FileError.ENCODING_ERR)
        console.log("Message : ENCODING_ERR")
    else if (error.code == FileError.NO_MODIFICATION_ALLOWED_ERR)
        console.log("Message : NO_MODIFICATION_ALLOWED_ERR")
    else if (error.code == FileError.INVALID_STATE_ERR)
        console.log("Message : INVALID_STATE_ERR")
    else if (error.code == FileError.SYNTAX_ERR)
        console.log("Message : SYNTAX_ERR")
    else if (error.code == FileError.INVALID_MODIFICATION_ERR)
        console.log("Message :  INVALID_MODIFICATION_ERR")
    else if (error.code == FileError.QUOTA_EXCEEDED_ERR)
        console.log("Message : QUOTA_EXCEEDED_ERR")
    else if (error.code == FileError.PATH_EXISTS_ERR)
        console.log("Message : PATH_EXISTS_ERR")



function LastModifiedDateOfFile(fileEntry)
var lastMod = fileEntry.lastModifiedDate;
//alert("lastMod - "+lastMod);
//var date = new Date(fileEntry.lastModified);
//alert("date - "+date);

参考链接http://www.html5rocks.com/en/tutorials/file/filesystem/

我们可以这样做,但我不能通过输入标签选择文件 http://jsbin.com/ajepef/1/edit?html,output

每次都显示“未定义”,我不确定 lastmodifeddate 属性是否存在。 如果有人知道,请帮助我。

【问题讨论】:

【参考方案1】:

试试这个:

window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "YOUR_FILE_NAME", gotFile, fail);

function fail(e) 
    console.log("FileSystem Error");
    console.dir(e);


function gotFile(fileEntry) 
    fileEntry.file(function(file) 
        console.log(file.lastModifiedDate);        
    );

希望对你有帮助

【讨论】:

它在安卓中工作。但对于 ios,它返回的是当前时间,而不是返回文件的实际修改时间。是否有任何其他工作可以实现这一目标?【参考方案2】:

你必须使用fileEntryfile()方法。改变你的LastModifiedDateOfFile函数如下:

function LastModifiedDateOfFile(fileEntry)
    fileEntry.file(successFile,errorFile);

    function successFile(entry)
        alert(entry.lastModified);
    

    function errorFile(error)
        alert("error");
    

【讨论】:

以上是关于如何在文件系统中获取最后修改的日期和时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中获取目录的最后修改日期和时间

如何在 Go 中获取文件的最后访问日期和时间?

在Java中获取文件的最后修改日期

如何根据特定日期获取最后修改的文件并导入python脚本[重复]

如何在 Windows 命令行上获取一组文件的最后修改日期?

如何获取 ADLS Gen2 文件的最后修改日期并将其保存到 python 中的 csv