代码之家  ›  专栏  ›  技术社区  ›  jb.

检测文件是否已在javascript中打开

  •  0
  • jb.  · 技术社区  · 17 年前

    此外,是否有一种简单的方法可以在文件上添加锁,以便另一个进程知道它正在使用中?

    var FileSystem = new ActiveXObject( "Scripting.FileSystemObject" );
    var xmlDoc = new ActiveXObject( "Msxml2.DOMDocument.3.0" );
    var fFile = FileSystem.GetFile( strPath );
    xmlDoc.load( fFile.Path );
    // some method's to edit documentElement in xmlDoc...
    xmlDoc.save( fFile.Path );
    
    4 回复  |  直到 17 年前
        1
  •  1
  •   Detect    17 年前

    你确定它只是JavaScript,而不是ActiveX或flash组件的组合吗?文件是在客户端还是服务器上?如果是服务器,这个问题对我来说更有意义(即使用一些AJAX解决方案)。

        2
  •  3
  •   Detect    17 年前

    我对ActiveX不太熟悉,但也许当你打开一个文件时,你可以创建一个像file.ext.lock这样的临时文件(并在保存文件时删除它),这样当另一个用户试图打开同一个文件并看到.lock文件存在时,你就知道它正在被使用。

        3
  •  1
  •   gapple    17 年前

    您可能需要服务器端锁定功能。javascript将调用服务器的“save”脚本,该脚本将返回“成功”状态或“文件锁定”。

    大多数程序使用的最简单的锁定方法是创建另一个同名但扩展名为'.lock'的文件。进程在打开原始文件时检查文件是否存在,如果存在,则文件正在使用中,只能以只读方式打开。如果没有,则创建锁定文件,并可以编辑原始文件。

        4
  •  0
  •   SamGoody    17 年前


    这可能是你的问题。

    它可以“编辑”它们——你可以使用JS来操纵或编辑HTML页面。[甚至运行一个完整的富文本编辑器。]

    但是,您必须将页面传递回其他脚本,才能实际保存这些更改。

    如果你有Aptana或类似的服务器端Javascript,或者使用[mozdev]将数据传递给SQLite,SQLite可以保存自己的数据,那么这实际上是不正确的。如果是这种情况,您应该指定,因为这几乎不是典型的Javascript用法。

    推荐文章