Question

J'essaie de réparer un fichier .hta créé il y a 3 ou 4 ans par une personne de ma société. À l'heure actuelle, si vous ouvrez un fichier déjà ouvert par quelqu'un d'autre, vous perdrez tout travail que vous avez effectué et vous devrez le refaire manuellement. Je pensais donc simplement vérifier si le fichier est déjà ouvert, puis verrouiller les modifications ou créer un message contextuel disant: "Hé, si vous essayez de sauvegarder, vous serez déçu". Existe-t-il un moyen simple de vérifier si le fichier est déjà ouvert en javascript?

Le code pour ouvrir le fichier est ...

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 + "'" );
        }

    }
}

et le code pour LoadXMLDocument est ...

//-----------------------------------------------------------------------------
// 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 );
}
Était-ce utile?

La solution

Je vois que c'est un très vieux message, mais pourquoi ne pas utiliser VBS? Si c'est un HTA, ils sont supportés pour courir ensemble:

objFSO = CreateObject("Scripting.FileSystemObject")

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

Autres conseils

C’est ce qui constitue le contrôle de révision . Ce n'est pas différent des autres formes du même problème qui n'impliquent pas. fichiers hta.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top