私の会社の誰かが3年または4年前に作成した.htaを修正しようとしています。今すぐ他の誰かが開いているファイルを開くと、あなたが行った作業が失われ、手動でもう一度やり直す必要があります。だから私はファイルが既に開いているかどうかをチェックして、編集をロックするか、単に "あなたがあなたを救おうとすれば失望する"というポップアップを作ってみることを考えていた。ファイルが既にjavascriptで開いているかどうかを確認する簡単な方法はありますか?ファイルがすでにjavascript/htaで開かれているかどうかを検出する
ファイルを開くためのコードです...
function FileOpen(strSetup)
{
if(! strSetup)
{
strSetup = ShowDialog("choose-setup", {"DialogTitle" : "Load Setup"});
}
if(strSetup)
{
if(FileSystem.FileExists(App.Paths.Configs + "/" + strSetup + ".setup"))
{
var fFile = FileSystem.GetFile(App.Paths.Configs + "/" + strSetup + ".setup");
App.Config = LoadXMLDocument(fFile.Path);
// SaveCurrentConfig();
RefreshView("setup-summary");
}
else
{
alert("Could not find setup '" + strSetup + "'");
}
}
}
とLoadXMLDocumentためのコードです...
//-----------------------------------------------------------------------------
// FUNCTION : LoadXMLDocument - Loads an XML document
// params : strPath - the path/file of the document to load
// : bCritical- if set true, we die if the document doesn't load
// returns : an XML dom object on success, false otherwise
//-----------------------------------------------------------------------------
function LoadXMLDocument(strPath, bCritical)
{
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
xmlDoc.setProperty("SelectionLanguage", "XPath");
if(! FileSystem.FileExists(strPath))
{
Error("'" + strPath + "' is not a valid file path");
if(bCritical) Abort();
return(false);
}
var fFile = FileSystem.GetFile(strPath);
xmlDoc.load(fFile.Path);
if(xmlDoc.documentElement == null)
{
Error("Could not load XML document '" + fFile.Path + "'");
if(bCritical) Abort();
return(false);
}
return(xmlDoc);
}