Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datenbank Datei Löschen (https://www.delphipraxis.net/179577-datenbank-datei-loeschen.html)

floppybe 17. Mär 2014 18:50

Datenbank Datei Löschen
 
Hallo und Guten Abend,

ich habe mich etwas ins DeleteFile gelesen.
Aber bei mir wird die zu Löschende Datei nicht gelöscht.

Delphi-Quellcode:
DeleteFile(ExtractFilePath(ParamStr(0)) + 'db/*.tdbd');
Sollte doch eigentlich alle "tdbd" Dateien Löschen oder irre ich mich mit meinem Code ?

Wäre froh um kleine Berichtigung.

Chris

sx2008 17. Mär 2014 19:01

AW: Datenbank Datei Löschen
 
Delphi-Quellcode:
DeleteFile()
unterstützt keine Wildcards (Sternchen und Fragezeichen).
Du musst den vollständigen Dateinamen ohne Wildcards angeben.

himitsu 17. Mär 2014 19:16

AW: Datenbank Datei Löschen
 
Das kommt davon, wenn man die Rückgabewerte der Funktionen nicht auswertet,
denn die hätten dir gesagt, warum es nicht geht. :warn:
Delphi-Quellcode:
if not DeleteFile(ExtractFilePath(ParamStr(0)) + 'db/*.tdbd') then
  RaiseLastOSError;
SHFileOperation kann mit Wildcards (* und ?) umgehen.
oder du mußt, wie schon erwähnt wurde, z.B. via FindFirst/FindNext die Dateien zusammensuchen und einzeln löschen.

Zitat:

Zitat von PS, die OH sagt, wenn man sie liest
Löscht eine Datei von der Festplatte.


nuclearping 17. Mär 2014 19:21

AW: Datenbank Datei Löschen
 
Neben den hier genannten Gründen solltest du dann später aber auch bedenken, dass du damit keine Dateien löschen kannst, die gesperrt sind.

Also wenn du zB in deiner eigenen (Datenbank-)Anwendung die Dateien löschen willst, stelle sicher, dass diese nicht von einer Instanz deiner Datenbank-Klasse geöffnet bzw. "in Benutzung" sind.

Und selbst wenn kein Objekt die Dateien "offen" hat, kann es trotzdem gut sein, dass du die Dateien nicht löschen kannst, solange deine Anwendung läuft.

himitsu 17. Mär 2014 19:26

AW: Datenbank Datei Löschen
 
Was mir noch einfällt:

Wie wäre es, wenn man die Löschfunktion der DB verwendet?
SQL-Code:
DROP DATABASE ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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