FC_GetDirSize - Allgemeine Informationen
Typ |
Funktion |
Verfügbar ab |
SystemInterface_1.34.1.0 |
Verwendet von: |
- |
Versionen: |
Aktuelle Version |
Größe des kompletten Inhalts eines Verzeichnisses ermitteln.
Die Funktion geht rekursiv durch den kompletten Verzeichnisinhalt und addiert die Größen sämtlicher Dateien und Ordner. Es kann die Größe von Verzeichnissen in der RAM-Disk ("ram0:"), auf der Flash-Disk ("ide0:") und auf einem USB-Gerät ("usb2msd:0" oder "usb2msd:1") ausgelesen werden.
Das Standardgerät ist "ide0:".
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_sDirPath |
STRING[1023] |
Name des Verzeichnisses, dessen Größe bestimmt werden soll |
Ein-/Ausgang |
Datentyp |
Beschreibung |
---|---|---|
iq_uliDirSize |
ULINT |
Größe des Verzeichnisinhalts in Byte |
Datentyp |
Beschreibung |
---|---|
DINT |
0: Größe erfolgreich ausgelesen. -1: Fehler beim Auslesen der Größe. -318: Mindestens einer der Parameter ist ungültig. |
Anforderung
Die Größe des Verzeichnisses "ide0:/ESystem" soll in MB ermittelt werden.
Deklaration
PROGRAM ESystemDirSize
VAR
uliDirSize : ULINT := 0;
diStatus : DINT := 0;
diBytesOfMegaByte : DINT := 1048576; // = 1024 * 1024
diDirSizeInMB : LINT := 0;
END_VAR
Programm
diStatus = FC_GetDirSize ( 'ide0:/ESystem', uliDirSize );
IF (diStatus = 0) THEN
diBytesOfMegaByte:= ULINT_TO_LINT(uliDirSize) / diBytesOfMegaByte;
END_IF
Ergebnis
diBytesOfMegaByte enthält die Größe des Verzeichnisses in Megabyte.
HINWEIS: In diesem Fall könnte man auch FC_GetDirSize ( 'ESystem', uliDirSize ) aufrufen und würde dasselbe Ergebnis bekommen. Wenn Sie aber auf einem anderen Datenträger als der internen Flash-Disk (USB-Gerät, RAM-Disk) die Größe eines Verzeichnisses bestimmen möchten, muss der Gerätename zwingend in den Pfad aufgenommen werden, da sonst eine Auflösung nicht möglich ist.