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 Datei löschen - notfalls erzwingen (https://www.delphipraxis.net/76890-datei-loeschen-notfalls-erzwingen.html)

ManuMF 11. Sep 2006 17:51


Datei löschen - notfalls erzwingen
 
Hallo,

in meiner Uhr speichere ich Sounds aus einer DLL beim Starten als Einzeldateien ins Verzeichnis des Programms. Während das Programm läuft, kann man eine andere DLL wählen. Jetzt sollten die Sounds durch die aus der anderen DLL ersetzt werden.

Hier liegt aber das Problem: Ich erhalte eine Fehlermeldung, dass die zu speichernde Datei nicht erstellt werden konnte. Auch der Aufruf von DeleteFile vorher ist nutzlos, die Dateien werden einfach nicht gelöscht / überschrieben. Im Explorer kann ich sie aber ganz normal löschen, ohne Meldung à la "Die Datei wird gerade verwendet!"

zum Speichern verwende ich übrigens beim Start und später auch
Delphi-Quellcode:
ResourceStream.SaveToFile(EXEPfad + 'hausl.wav');
Gibt es eine Möglichkeit, die Dateien definitiv zu löschen? Oder irgendwie vom Zugriff durch offensichtlich mein Programm zu trennen?

EDatabaseError 11. Sep 2006 18:12

Re: Datei löschen - notfalls erzwingen
 
Such mal im Forum unter [dp]Unwiderruflich löschen[/dp] da gabs IMHO schon mal was.

Mfg

Tobi

[die cl könnte vllt. auch helfen]

Zacherl 11. Sep 2006 18:42

Re: Datei löschen - notfalls erzwingen
 
Das ist denke ich aber nicht der richtige Code für sowas ... ich würde mal versuchen vor dem Löschen den RessourceStream freizugeben.

Florian

ManuMF 11. Sep 2006 19:59

Re: Datei löschen - notfalls erzwingen
 
Zitat:

Zitat von Florian Bernd
Das ist denke ich aber nicht der richtige Code für sowas ...

Ja, die Dateien müssen nicht unwiederruflich weg sein, es reicht, wenn sie einfach ganz normal gelöscht werden ;-).

Zitat:

Zitat von Florian Bernd
ich würde mal versuchen vor dem Löschen den RessourceStream freizugeben

Das mache ich (im try..finally-Block) direkt nach dem SaveToFile.

ManuMF 13. Sep 2006 15:29

Re: Datei löschen - notfalls erzwingen
 
*push*

Ich habe mal gesucht (ich meine, schon mal was in der Art "Datei freigeben" hier gelsesen zu haben), aber nichts gefunden.

DGL-luke 13. Sep 2006 15:32

Re: Datei löschen - notfalls erzwingen
 
ich hatte auch öfters das problem, dass ein TStream-Nachkomme seine Dateihandles nicht freigibt... mehr kann ich dir nicht sagen dazu...

Und ja, man kann die handles, die auf einer datei liegen, ermitteln und manipulieren. der Processexplorer von sysinternals kann das. wie du das in delphi machst, weiß ich nicht.

delphis spassbremse 13. Sep 2006 16:33

Re: Datei löschen - notfalls erzwingen
 
ini file nehmen und damit löschen..... die dateiendung muss ja nicht immer ini sein

ManuMF 13. Sep 2006 17:36

Re: Datei löschen - notfalls erzwingen
 
Zitat:

Zitat von DGL-luke
wie du das in delphi machst, weiß ich nicht.

Nur ist das genau das, was ich brauche ;-)

Zitat:

Zitat von delphis spassbremse
ini file nehmen und damit löschen..... die dateiendung muss ja nicht immer ini sein

Sorry, das verstehe ich nicht.

3_of_8 13. Sep 2006 17:45

Re: Datei löschen - notfalls erzwingen
 
Ähm, was? Das Ding mit TIniFile öffnen und löschen? Soll ich das ernstnehmen?

himitsu 13. Sep 2006 17:55

Re: Datei löschen - notfalls erzwingen
 
Du brauchst ja nur mal rausfinden, wie solche Programme wie der ProzessExplorer an die (File)Handles rankommen und dann nur das Entsprechende zu schließen ._.

[add]
Da kann man gleich Format im DOS-Modus nehmen, das schließt auch alle offenen Handles :angel:


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