AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Löschen von Dateien/Verzeichnissen ohne Meldung, wenn diese in Benutzung sind
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Emwykey · begonnen am 7. Okt 2015 · letzter Beitrag vom 7. Okt 2015
Antwort Antwort
Emwykey

Registriert seit: 27. Aug 2013
51 Beiträge
 
#1

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

  Alt 7. Okt 2015, 09:54
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!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 7. Okt 2015, 09:57
Wenn ich die Doku richtig verstehe:
FOS.fFlags := FOF_NOCONFIRMATION or FOF_NOERRORUI;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Emwykey

Registriert seit: 27. Aug 2013
51 Beiträge
 
#3

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

  Alt 7. Okt 2015, 10:00
Super klappt!

Memo an mich - Doku lesen

Danke!!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 7. Okt 2015, 10:11
Zum Glück hast'e das am Anfang schön genullt, sonst hätte 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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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