FC_DirListEntryGet

 

FC_DirListEntryGet - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

SystemInterface_1.32.6.0

Versionen:

Aktuelle Version

Aufgabe

Nach einer oder mehreren Dateien suchen.

Beschreibung

Mit dieser Funktion wird aus der Liste der Dateien ein Eintrag ausgelesen. Die Funktion FC_DirListEntryGet() kopiert den Eintrag i_diEntryNum in iq_stEntry aus der Liste mit den Dateiinformationen. Diese Liste wird von der Funktion FC_DirListCreate() erstellt. Die Funktion FC_DirListCreate() liefert die Anzahl der gefundenen Dateien oder Verzeichnisse. Der Parameter i_diEntryNum kann 1 bis <Anzahl gefundene Dateien> betragen. Das bedeutet, die Funktion FC_DirListCreate() muss vor der Funktion FC_DirListEntryGet() ausgeführt werden.

Datentyp ET_DirType

Der Datentyp ET_DirType beinhaltet vordefinierte Typen für den Eintrag "FileType" in StructDirListEntry.

o0: ET_DirType.File => Datei

o1: ET_DirType.Dir => Verzeichnis

Schnittstelle

Eingang

Datentyp

Beschreibung

i_diEntryNum

DINT

Nummer des Eintrags der Dateinamen

Ein-/Ausgang

Datentyp

Beschreibung

iq_stEntry

ST_DirListEntry

ST_DirListEntry

Rückgabewert

Datentyp

Beschreibung

DINT

0: OK.

-1: Kein Eintrag vorhanden.

Beispiele

Anforderung

Es sollen alle Metadaten der Dateien und Verzeichnisse auf der Flash-Disk ausgelesen werden.

Deklaration

PROGRAM DirTest
VAR
   diNumberOfFiles : DINT;
   di : DINT;
   diDirResult : DINT;
   dleDirListEntry : ST_DirListEntry;
   sFileName : STRING;
   diFileSize : DINT;
   diFileType : DINT;
   diFileAttribute : DINT;
   dtFileDate : DATE_AND_TIME;
END_VAR  

Programm

diNumberOfFiles := FC_DirListCreate('*');
IF (diNumberOfFiles > 0) THEN
   FOR di := 1 TO diNumberOfFiles BY 1 DO
      diDirResult := FC_DirListEntryGet(di, dleDirListEntry);
      IF (diDirResult = 0) THEN
         sFileName := dleDirListEntry.sFilename;
         diFileSize := dleDirListEntry.diFileSize;
         diFileType := dleDirListEntry.diFileType;
         diFileAttribute := dleDirListEntry.diFileAttribute;
         dtFileDate := dleDirListEntry.dtFileDate;
      END_IF
   END_FOR
END_IF  

Ergebnis

Bei jedem Schleifendurchlauf steht in der Variablen diFileSize die Dateigröße, in diFileType der Typ (Datei oder Verzeichnis), in diFileAttribute die Attribute (Schreibschutz) und in dtFileDate Tag und Uhrzeit der letzten Änderung.