Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit ForceDirectories (https://www.delphipraxis.net/138224-probleme-mit-forcedirectories.html)

gangs-taas 5. Aug 2009 12:03


Probleme mit ForceDirectories
 
Hey,
ich habe diesen Code
Delphi-Quellcode:
if not (DirectoryExists(Pfad)) then
    begin
      ForceDirectories(Pfad);
      Dokument.Add(Text);
      Dokument.SaveToFile(DokumentenOrt);
    end
  Else
    begin
      If not FileExists(DokumentenOrt) Then
      begin
        Dokument.Add(Text);
        Dokument.SaveToFile(DokumentenOrt);
      end;
und mein Pfad besteht nur zur hälfte ....

also Pfad := C:\Users\Christopher\AppData\Roaming\Kalender\2008 \
und das hier ist schon vorhanden C:\Users\Christopher\AppData\Roaming\Kalender

wieso erstellt mir der Befehl ForceDirectories(Pfad); denn nun nicht meinen Ordner '2008' ???

ich fliege nämlich dann später raus mit der fehlermeldung 'der Pfad ist nicht vorhanden'

und das Programm erkennt 'pfad' aber auch nicht als nicht vorhanden ..

wieso denkt das programm der pfad sei vorhanden ? nur weil der erste teil schon da ist ?1

Vasco da Gama 5. Aug 2009 12:06

Re: Probleme mit ForceDirectories
 
Vielleicht hast du dort keine Schreibrechte? Teste das mal mit dem Dokumenteordner.

Luckie 5. Aug 2009 12:07

Re: Probleme mit ForceDirectories
 
Zitat:

Zitat von gangs-taas
wieso erstellt mir der Befehl ForceDirectories(Pfad); denn nun nicht meinen Ordner '2008' ???

Keine Ahnung. Aber ich werde mal meine mentalen Debugger Fähigkeiten einsetzen: ommmmmmmm

Die Variable Pfad enthält nicht das Jahr.

Desweiteren wäre es chön, wenn du vor dem Posten schon mal selber gucken würde, wo der fehler sein könnte, in dem du deinen Code mal debuggst.

himitsu 5. Aug 2009 12:10

Re: Probleme mit ForceDirectories
 
und laß mal das \ aus dem Pfad
ok, daß ExcludeTrailingPathDelimiter sollte dieses Problem beheben

gangs-taas 5. Aug 2009 12:11

Re: Probleme mit ForceDirectories
 
denkst du allen ernstes ich hatte das nicht gemacht ?!


Die Variable Pfad enthält nicht das Jahr.

doch enthält sie !!


woher willst du wissen das sie das nicht tut ?

also ich denk manchmal ihr haltet mich für blöd :x


also das war auf luckie bezogen

himitsu 5. Aug 2009 12:14

Re: Probleme mit ForceDirectories
 
PS: ForceDirectories liefert dir einen netten Rückgabewert, ala Boolean

z.B.:
Delphi-Quellcode:
If ForceDirectories(Path) Then Begin
  Dokument.Add(Text);
  Dokument.SaveToFile(DokumentenOrt);
End Else ShowMessage(SysErrorMessage(GetLastError));
[add]
und wozu zwei getrennte Pfade?
das sind nur unnötige Fehlerquellen
Delphi-Quellcode:
ForceDirectories(ExctractFilePath(DokumentenOrt));

DeddyH 5. Aug 2009 12:14

Re: Probleme mit ForceDirectories
 
Ich würde den Code etwas erweitern:
Delphi-Quellcode:
if not (DirectoryExists(Pfad)) then
    begin
      if SysUtils.ForceDirectories(Pfad) then
        begin
          Dokument.Add(Text);
          Dokument.SaveToFile(DokumentenOrt);
        end
      else
        MessageBox(0,PChar(Format('Fehler beim Anlegen des Verzeichnisses "%s"',[Pfad])),'Oops',MB_OK or MB_ICONERROR);
    end
else
  ...

gangs-taas 5. Aug 2009 12:18

Re: Probleme mit ForceDirectories
 
Zitat:

Zitat von DeddyH
Ich würde den Code etwas erweitern:
Delphi-Quellcode:
if not (DirectoryExists(Pfad)) then
    begin
      if SysUtils.ForceDirectories(Pfad) then
        begin
          Dokument.Add(Text);
          Dokument.SaveToFile(DokumentenOrt);
        end
      else
        MessageBox(0,PChar(Format('Fehler beim Anlegen des Verzeichnisses "%s"',[Pfad])),'Oops',MB_OK or MB_ICONERROR);
    end
else
  ...


bringt nichts
ich bekomme KEINE MsgBox und bekomme hier


Delphi-Quellcode:
   begin
      if SysUtils.ForceDirectories(Pfad) then
        begin
          Dokument.Add(Text);
          Dokument.SaveToFile(DokumentenOrt);
        end
      else
        MessageBox(0,PChar(Format('Fehler beim Anlegen des Verzeichnisses "%s"',[Pfad])),'Oops',MB_OK or MB_ICONERROR);
    end
else
    begin
      If not FileExists(DokumentenOrt) Then
      begin
        Dokument.Add(Text);
        Dokument.SaveToFile(DokumentenOrt); // hier !!
      end;
die fehlermeldung "Pfad ist nicht vorhanden"

also erkennt er IMMERNOCH NICTH, dass er deb Pfad anlegen soll ...

Luckie 5. Aug 2009 12:21

Re: Probleme mit ForceDirectories
 
Zitat:

Zitat von gangs-taas
denkst du allen ernstes ich hatte das nicht gemacht ?!

Und ich habe das Gefühl, du denkst wir sitzen hier neben dir an deinem Computer? Woher sollen wir wissen, was du getan hast um den Fehler zu finden? Wir sehen nur den Code, der syntaktisch korrekt ist, und den Hinweis "geht nicht". Was sollen wir da machen?


Zitat:

Die Variable Pfad enthält nicht das Jahr.

doch enthält sie !!


woher willst du wissen das sie das nicht tut ?
Weil der Ordner nicht erstellt wurde und dies ein plausibeler Grund wäre?

Zitat:

also ich denk manchmal ihr haltet mich für blöd :x
Und ich habe das Gefühl, du denkst wir sitzen hier neben dir an deinem Computer? Woher sollen wir wissen, was du getan hast um den Fehler zu finden? Wir sehen nur den Code, der syntaktisch korrekt ist, und den Hinweis "geht nicht". Was sollen wir da machen? Zumal due keinerlei Fehlerbehandlung im Code hast, die dir helfen könnte den Fehler zu finden.

himitsu 5. Aug 2009 12:22

Re: Probleme mit ForceDirectories
 
wenn ForceDirectories True liefert (also keine MessageBox anzeigt), dann ist es der Meinung es gibt den Pfad, welchen du ihm gibst ... demnach wäre der von dir übergebene Pfad fehlerhaft.

und was sagt meine Version?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz