Обнаружение, если файл уже открыт в javascript / hta

StackOverflow https://stackoverflow.com/questions/1004501

  •  05-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь исправить .hta, который кто-то в моей компании создал 3 или 4 года назад. Прямо сейчас, если вы откроете файл, который уже открыли кто-то другой, вы потеряете всю работу, которую вы над ним сделали, и вам придется делать это снова вручную. Поэтому я подумал просто проверить, открыт ли файл и затем заблокировать редактирование, или просто сделать всплывающее окно с надписью "эй, если вы попытаетесь сохранить файл, вы будете разочарованы". Есть ли простой способ проверить, открыт ли файл в javascript?

Код для открытия файла ...

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 );
}
Это было полезно?

Решение

Я вижу, что это супер старый пост, но почему бы не использовать VBS? Если это HTA, они поддерживаются в совместной работе:

objFSO = CreateObject("Scripting.FileSystemObject")

strFilePath = "C:\test.txt"
If objFSO.FileExist(strFilePath) Then
   MsgBox "I win"
End If

Другие советы

Именно в этом и заключается контроль версий . Это ничем не отличается от других форм той же проблемы, которая не связана. hta файлы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top