Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Abfrage: Kann Datei gespeichert werden? (https://www.delphipraxis.net/63573-abfrage-kann-datei-gespeichert-werden.html)

ferby 20. Feb 2006 18:44


Abfrage: Kann Datei gespeichert werden?
 
Hallo,

Ich verwende einen SaveDialog, damit der Anwender einen Ordner und einen Dateinamen zum speichern auswählen kann.
Ich möchte jetzt abfragen ob die Datei dort wirklich abgespeichert werden kann.
Mir fallen drei Fälle ein, wo es sein kann das die Datei nicht gespeichert werden kann:
.) zu wenig Speicherplatz
.) auf einer Cd
.) zu wenig Rechte

Wie kann ich Abfragen ob auf den ausgewählten Pfad wirklich etwas abgespeichert werden kann?


Ferby

Luckie 20. Feb 2006 19:01

Re: Abfrage: Kann Datei gespeichert werden?
 
1: Freine Speicherplatz abfragen
2: Laufwerkstyp abfragen
3: Rechte abfragen: http://www.michael-puff.de/Developer...ileAccess.html

Zu den ersten beiden Punkten solltest du genug in der DP finden.

Matze 20. Feb 2006 19:04

Re: Abfrage: Kann Datei gespeichert werden?
 
Evtl. müsstest du auch überprüfen, falls du eine Datei überschreiben möchtest, ob diese von einem anderen Programm exklusiv geöffnet ist. Dazu müsste auch etwas im Forum zu finden sein.

ferby 20. Feb 2006 19:22

Re: Abfrage: Kann Datei gespeichert werden?
 
Hallo,

ist an dieser Variante etwas aus zu setzen?
Ist viel einfacher:

Delphi-Quellcode:
  try
     AssignFile(f, ed_output_url.text);
     ReWrite(f);
     CloseFile(f);
  except
     close;
  end;
Wenn ich den Fehler im Delphi-Editor auslöse dann kommt eine Fehlermeldung,
rufe ich die fertige Exe Datei auf und löse den Fehler aus dann schließt sich das Programm ohne Fehlermeldung,
warum?

Matze 20. Feb 2006 20:19

Re: Abfrage: Kann Datei gespeichert werden?
 
Zitat:

Zitat von ferby
Wenn ich den Fehler im Delphi-Editor auslöse dann kommt eine Fehlermeldung,
rufe ich die fertige Exe Datei auf und löse den Fehler aus dann schließt sich das Programm ohne Fehlermeldung, warum?

Da der Delphi-Debugger standardmäßig bei Sprachexceptions stoppt, was du aber deaktivieren kannst: Tools - Debugger Optionen - Sprach-Exceptions - Bei Delphi Exceptions stoppen (Haken weg)

ferby 21. Feb 2006 06:18

Re: Abfrage: Kann Datei gespeichert werden?
 
Hallo,

Danke für die raschen Antwort,
und gegen die Variante ansich um herauszufinden ob eine Datei angelegt werden kann oder nicht, ist daran etwas auszusetzen???

Luckie 21. Feb 2006 06:46

Re: Abfrage: Kann Datei gespeichert werden?
 
Nun ja, es ist wie blind über die Ampel zu fahren, um rauszufinden, ob rot ist und wenn es kracht dann war es rot. ;) Aber ich würde mir nicht so viel Mühe machen. Ich würde einfach den Rückgabewert der Methode SaveToFile oder wie auch immer du abspeicherst auswerten und eine entsprechende Fehlermeldung ausgeben:

Delphi-Quellcode:
AssigneFile(F, 'C:\foo\bar.txt');
{$I-}
Rewrite(F)
{$I+}
if IOResult = 0 then
begin
  Writeln(...);
end
else
  ShowMessage(SysErrorMessage(GetLastError));
Wenn es keinen Rückgabewert gibt und die Methode doch eine Exception auslöst, dann würde das so aussehen:
Delphi-Quellcode:
  StringList := TStringList.Create;
try
  try
    StringList.SaveToFile(...);
  except
    on E: Exception do ShowMessage(E.Message);
  end;
finally
  FreeAndNil(StringList);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr.

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