Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: Problem beim Ermitteln von Verzeichnissen über CSIDL

  Alt 4. Jun 2007, 21:32
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);
  Mit Zitat antworten Zitat