GetFileInDirectoryByIndex

TwinCAT TIA
Lokal Datei- und Ordner-Zugriff Ordner

ns=2;s=DEPRAG Smart/Local/FileAndDirectoryAccess/DirectoryAccess/GetFileInDirectoryByIndex

Der Befehl gibt die Eigenschaften der Datei mit dem angegebenen Index zurück, die im angegebenen Verzeichnis liegt.

Parameter:

    FullPath
    Vollständiger Pfad des Verzeichnisses.
    Index
    Eindeutiger Index, um in der Liste die gewünschte Datei abzurufen.

Rückgabewert:

    GetFileInDirectoryByIndex
    Eine Variable vom Typ OpcMethodReturnValueFileInfo. In der Eigenschaft Result sind die befehlsspezifischen Rückgabewerte enthalten.
      Result
      Eine Variable vom Typ FileInfo. Diese enthält alle Eigenschaften der Datei.
        Attributes
        Eine Enumeration mit den Attributen der Datei.
        Die Enumeration kann folgende Ausprägungen haben. Die Attribute können auch kombiniert auftreten.
        ReadOnly = 1
        Hidden = 2
        System = 4
        Directory = 16
        Archive = 32
        Device = 64
        Normal = 128
        Temporary = 256
        SparseFile = 512
        ReparsePoint = 1024
        Compressed = 2048
        Offline = 4096
        NotContentIndexed = 8192
        Encrypted = 16384
        IntegrityStream = 32768
        NoScrubData = 131072
        Directory
        Eine Variable vom Typ DirectoryInfo. Diese enthält Eigenschaften des übergeordneten Ordners.
          Attributes
          Eine Enumeration mit den Attributen der Datei.
          Die Enumeration kann folgende Ausprägungen haben. Die Attribute können auch kombiniert auftreten.
          ReadOnly = 1
          Hidden = 2
          System = 4
          Directory = 16
          Archive = 32
          Device = 64
          Normal = 128
          Temporary = 256
          SparseFile = 512
          ReparsePoint = 1024
          Compressed = 2048
          Offline = 4096
          NotContentIndexed = 8192
          Encrypted = 16384
          IntegrityStream = 32768
          NoScrubData = 131072
          Exists
          Gibt an, ob das Verzeichnis existiert.
          Extension
          Die Erweiterung des Ordnernamens inklusive des Punkts.
          FullName
          Vollqualifizierter Pfad des Verzeichnisses.
          Name
          Name des Verzeichnisses.
        Exists
        Gibt an, ob die Datei existiert.
        Extension
        Die Dateierweiterung inkl. Punkttrennzeichen (z. B. .exe, .dll)
        FullName
        Der volle Name der Datei inkl. Dateipfad. Beispiel: C:\My Folder\File.txt
        Name
        Dateiname ohne Ordnerpfad.

Beispiele:

Neben den bereits erläuterten Parametern sind für die Implementierung in TwinCAT 3 nachfolgende Variablen anzulegen / zu übergeben:

Beckhoff Parameter:

    bDirectoryAccessGetFileInDirectoryByIndex
    Eine boolesche Variable, über welche die Ausführung des GetFileInDirectoryByIndex-Befehls getriggert werden kann.
    OutputDataDirectoryAccessGetFileInDirectoryByIndex
    Eine Instanz der "ST_GetFileInDirectoryByIndexOutputData", in welche der Rückgabewert der GetFileInDirectoryByIndex-Methode geschrieben wird.
    hrDirectoryAccessGetFileInDirectoryByIndex
    Hiermit kann die Ausführung des Befehls überwacht werden. Fehler-Codes haben den Typ "HRESULT".
    fbDirectoryAccess
    Eine Instanz des, mit der DEPRAG Smart-Bibliothek gelieferten, "FB_DirectoryAccess" Funktionsbausteins.
    sFullPath
    Eine STRING-Variable, die den vollständigen Pfad des Verzeichnisses enthält.
    nIndex
    Ein DINT-Wert, der die Datei spezifiziert, welche aus der Liste abgerufen werden soll.
    ConnectionHandle
    Beim Verbindungsaufbau zwischen DEPRAG Smart Server und Ihrem OPC UA Client erhaltenes "ConnectionHandle".


VAR
     bDirectoryAccessGetFileInDirectoryByIndex   : BOOL;
     OutputDataDirectoryAccessGetFileInDirectoryByIndex : ST_GetFileInDirectoryByIndexOutputData;
     hrDirectoryAccessGetFileInDirectoryByIndex   : HRESULT;

     fbDirectoryAccess : FB_DirectoryAccess;
END_VAR

hrDirectoryAccessGetFileInDirectoryByIndex := fbDirectoryAccess.GetFileInDirectoryByIndex(
              bExecute    := bDirectoryAccessGetFileInDirectoryByIndex,
              ConnectionHandle  := depragSmartConnection.ConnectionHandle,
              sFullPath   := 'D:\Test',
              nIndex     := 0,
              OutputData   => OutputDataDirectoryAccessGetFileInDirectoryByIndex);
IF hrDirectoryAccessGetFileInDirectoryByIndex <> S_FALSE THEN 
     bDirectoryAccessGetFileInDirectoryByIndex := FALSE;
END_IF
                                                    

Für Beispiele und Erklärungen bezüglich der Aufrufe von Knoten via Siemens TIA Portal sei an dieser Stelle auf den Unterpunkt "Siemens TIA Portal" in Abschnitt "Erste Schritte" verwiesen.