![]() |
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 |
Re: Abfrage: Kann Datei gespeichert werden?
1: Freine Speicherplatz abfragen
2: Laufwerkstyp abfragen 3: Rechte abfragen: ![]() Zu den ersten beiden Punkten solltest du genug in der DP finden. |
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.
|
Re: Abfrage: Kann Datei gespeichert werden?
Hallo,
ist an dieser Variante etwas aus zu setzen? Ist viel einfacher:
Delphi-Quellcode:
Wenn ich den Fehler im Delphi-Editor auslöse dann kommt eine Fehlermeldung,
try
AssignFile(f, ed_output_url.text); ReWrite(f); CloseFile(f); except close; end; rufe ich die fertige Exe Datei auf und löse den Fehler aus dann schließt sich das Programm ohne Fehlermeldung, warum? |
Re: Abfrage: Kann Datei gespeichert werden?
Zitat:
|
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??? |
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:
Wenn es keinen Rückgabewert gibt und die Methode doch eine Exception auslöst, dann würde das so aussehen:
AssigneFile(F, 'C:\foo\bar.txt');
{$I-} Rewrite(F) {$I+} if IOResult = 0 then begin Writeln(...); end else ShowMessage(SysErrorMessage(GetLastError));
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 15:27 Uhr. |
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