在javascript中访问本地文件修改时间

时间:2009-07-21 19:41:29

标签: javascript file

有没有办法通过javascript在本地访问文件的修改时间(ctime或mtime应该可以工作)。

我想去file:///home/me/mtime.html并让javascript告诉我/home/me/file.txt在2分钟之前被修改了。我知道javascript由于安全问题而限制了文件访问,但是有一些技巧,因为它都是在本地完成的。

感谢。

4 个答案:

答案 0 :(得分:1)

以下是一些使用ActiveX的javascript,我认为可能会帮助你:

<script language=jscript runat=server> 
    var thisfile = <File_Path>; 
    thisfile = Server.MapPath(thisfile); 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var fs = fso.GetFile(thisfile); 
    var dlm = fs.DateLastModified; 
    Response.Write("Last modified: " + dlm); 
</script>

如果您需要多久以前修改它,您需要一些其他的javascript来从当前时间减去dlm。

答案 1 :(得分:1)

Firefox在其XPCOM(ActiveX竞争对手技术)下拥有一组可用于执行相同操作的组件。

可能是这样的(未经测试):

function getLastModifiedTime(filePath) 
{
    try 
    {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    } 
    catch (e) 
    {
        throw new Error("Permission to read file was denied.");
    }

    var file = Components.classes["@mozilla.org/file/local;1"]
    .createInstance(Components.interfaces.nsILocalFile);

    file.initWithPath( filePath );

    return file.lastModifiedTime;
}

至于Safari ....不知道。也许是一个签名的java小程序?

答案 2 :(得分:0)

可能通过ActiveX或其他一些浏览器组件,允许用户向浏览器授予扩展权限,例如HTA或Google Gears等。

换句话说,“不”,除非你愿意做一些非标准的事情。

答案 3 :(得分:0)

很抱歉,但使用JavaScript无法实现。