Zitat von
Mazel:
@Der_Unwissende:
Ich habe vorhin vergessen die Variablen anzugeben. I steht für die Schleifenvaraible um auf das entsprechende Element im Array zuzugreifen und nur wenn das Verzeichnis existiert wird SysDirCounter erhöht um in der Anzeige dann nur die die mögliche Anzahl anzuzeigen.
Ich kann mir nicht erklären was da passiert.
Du erklärst es
imho hier. Sagen wir Du möchtest aus 10 Ordnern nur die Speichern, die Deine Bedingung erfüllen. Also legst Du ein Array der Größe 10 an und alle Eintrage sind erstmal nicht initialisiert (Verzeichnis mit Glück der leere String). Nun läufst Du in einer Schleife über die 10 Ordner und prüfst für jeden, ob er die Bedingung erfüllt. Bei denen, bei denen das der Fall ist änderst Du das Verzeichnis, die anderen bleiben auf dem nicht initialisierten Wert (hier zufällig der leere String).
Versuche es mal so:
Delphi-Quellcode:
If DirectoryExists(GetShellFolder(SHELL_CSIDL_DIRS[i])) then
begin
SysDirInfo[SysDirCounter].DirName := SHELL_STRING_DIRS[i];
SysDirInfo[SysDirCounter].DirPath := GetShellFolder(SHELL_CSIDL_DIRS[i]);
Inc(SysDirCounter);
end;
setLength(SysDirInfo, SysDirCounter);