Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Löschen von Dateien/Verzeichnissen ohne Meldung, wenn diese in Benutzung sind (https://www.delphipraxis.net/186857-loeschen-von-dateien-verzeichnissen-ohne-meldung-wenn-diese-benutzung-sind.html)

Emwykey 7. Okt 2015 09:54

Löschen von Dateien/Verzeichnissen ohne Meldung, wenn diese in Benutzung sind
 
Hallo,

ich habe folgendes Problem (ich hoffe, ich bin in der richtigen Toppic :?):

Ich möchte beim beenden eines Programmes ein Verzeichnis und seinen Inhalt löschen ( Temporäre Dateien )
Jetzt kann es allerdings vorkommen, dass manche Dateien durch andere Programminstanzen noch in Nutzung sind.
Diese sollten natürlich nicht gelöscht werden, was auch nicht passiert.
Allerdings erhalte ich in diesem Fall immer eine nervige Meldung, dass Dateien nicht gelöscht werden können.

Hier ist mein Code:
Code:
procedure DeleteTemp;
var SourceLst: string;
    FOS: TSHFileOpStruct;
begin
  FillChar(FOS, SizeOf(FOS), 0);
  FOS.wFunc := FO_DELETE;
  SourceLst := PathTo + '\Temp\' + '*.*';
  FOS.pFrom := PChar(SourceLst);
  FOS.fFlags := FOS.fFlags OR FOF_NOCONFIRMATION;
  SHFileOperation(FOS);
end;
Kann ich diese Meldung irgendwie unterdrücken? So, dass geöffnete Dateien / Verzeichnisse einfach nicht gelöscht werden, ohne dass der Nutzer das mitbekommt?

Danke im Voraus für eine Antwort! :)

DeddyH 7. Okt 2015 09:57

AW: Löschen von Dateien/Verzeichnissen ohne Meldung, wenn diese in Benutzung sind
 
Wenn ich die Doku richtig verstehe:
Delphi-Quellcode:
FOS.fFlags := FOF_NOCONFIRMATION or FOF_NOERRORUI;

Emwykey 7. Okt 2015 10:00

AW: Löschen von Dateien/Verzeichnissen ohne Meldung, wenn diese in Benutzung sind
 
Super klappt!

Memo an mich - Doku lesen

Danke!!

himitsu 7. Okt 2015 10:11

AW: Löschen von Dateien/Verzeichnissen ohne Meldung, wenn diese in Benutzung sind
 
Zum Glück hast'e das am Anfang schön genullt, sonst hätte
Delphi-Quellcode:
FOS.fFlags := FOS.fFlags OR ...
auch noch Spaß bereitet. (so ist es nicht schlimm, auch wenn ein bissl nutzlos)



Wer erstellt denn diese TempDateien, bzw. wer benutzt sie und wie?

Es gibt mehrere Wege sowas Windows machen zu lassen.
z.B. FILE_FLAG_DELETE_ON_CLOSE
Was auch dann funktioniert, wenn deine Anwendung mal abstürzen sollte.


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