![]() |
deletefile und Konsorten
Hallo zusammen,
Falls ich hier falsch bin, bitte ich um Entschuldigung, aber das WinAPI hätte genauso gut/schlecht gepasst. Mir geht es um das Löschen von Dateien. Mein Problem sind Dateien, die einen Schreibschutz haben , versteckt und/oder Systemdateien sind. (Ja, es geht um die nicht entsorgten Reste von Word) mit DeleteFile komme ich nicht weiter, und Erase wollte ich nicht einsetzten, weil dann vorher das Assign erfolgen muß. Daher hab ich es mit SHFileOperation und FOF_Silent or FOF_NoConfirmation gemacht. Jetzt wird ohne nervige Rückfragen gelöscht und das war ja auch meine Absicht. Trotzdem habe ich zwei Fragen hierzu: a) kann man "rückzufragende " Dateien irgendwie definieren? ( z.B. System-Dateien Rückfragen ; Hidden-Dateien ohne Rückfrage löschen) b) gibt es noch eine andere Möglichkeit Dateien zu löschen? (vorauswahl mit Findfirst ist mir jetzt etwas zu aufwendig aber wenn's nichts anderes gibt) Gruß K-H |
Re: deletefile und Konsorten
Das Problem bei SysUtils.
![]() ![]() ![]() und mit der Umkehrfunktion ![]() ![]() ![]() |
Re: deletefile und Konsorten
Entschuldige
vielleicht habe ich mich mißverständlich ausgedrückt. ich würde gerne eine "parametrisierte Löschfunktion" haben, so es sie denn gibt. Sonst wäre das Pärchen GetFileattribute, SetFileattribute natürlich nicht schlecht, weil dann gleich das Deletefile angesteuert werden kann. Vielen Dank K-H |
Re: deletefile und Konsorten
Vielleicht mit
![]() Zitat:
|
Re: deletefile und Konsorten
Hallo zusammen,
nach Euren Anregungen (vielen Dank nochmals!) bin ich auf folgendes gekommen: vorhandene und teilweise versteckt dokumentierte Dateiattribute:
Code:
diese Attribute sind teilweise nicht in der Windows.Pas vorhanden was aber von Version zu Version unterschiedlich ist.
$00000001 FILE_ATTRIBUTE_READONLY
$00000002 FILE_ATTRIBUTE_HIDDEN $00000004 FILE_ATTRIBUTE_SYSTEM $00000010 FILE_ATTRIBUTE_DIRECTORY $00000020 FILE_ATTRIBUTE_ARCHIVE $00000040 FILE_ATTRIBUTE_DEVICE // Do not Use!!!! $00000080 FILE_ATTRIBUTE_NORMAL $00000400 FILE_ATTRIBUTE_REPARSEPOINT $00000100 FILE_ATTRIBUTE_TEMPORARY $00000800 FILE_ATTRIBUTE_COMPRESSED $00001000 FILE_ATTRIBUTE_OFFLINE $00002000 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED $00004000 FILE_ATTRIBUTE_ENCRYPTED $00010000 FILE_ATTRIBUTE_VIRTUAL DeleteFile steigt nur bei FILE_ATTRIBUTE_HIDDEN aus. Alle anderen Attribute behindern den Löschvorgang nicht (XP SP3 Prof) Da ich für meine Aufgabe auch das Dateidatum beachten muß werde ich wie folgt vorgehen
Code:
Vielen Dank nochmal für Eure Anregungen!
GetFileAttributesEX(Dateiname,GetFileExInfoStandard, @DateiInfo);
if Dateidatumzulassig(DateiInfo) then begin if (DateiInfo.dwFileAttributes and FILE_ATTRIBUTE_HIDDEN) >0 then Setfileattributes(Dateiname,FILE_ATTRIBUTE_NORMAL); Deletefile(Dateiname); end; Gruß K-H |
Re: deletefile und Konsorten
Ich frage mich nur, wieso Du noch auf Hidden abfragst, bevor Du die Datei löschst. Du könntest doch genausogut "auf Verdacht" einfach alle Dateiattribute entfernen und dann löschen.
|
Re: deletefile und Konsorten
Warum mehr tun als notwendig?
Die Abfrage brauch ich (Datum und Attribute), wenn dann Hidden gesetzt ist, dann werden die Attribute neu gesetzt ansonsten wird nichts gemacht. Zum einen werde ich den Test auf Hidden für andere Attribute wohl ausbauen (müssen), zum anderen spare ich mir so einen Arbeitsschritt. Insbesonders auf Netzlaufwerken verspreche ich mir da einen Vorteil. Gruß K-H |
Re: deletefile und Konsorten
Du tust doch IMO bereits jetzt mehr als notwendig. Was ich meinte:
Delphi-Quellcode:
//GetFileAttributesEX(Dateiname,GetFileExInfoStandard, @DateiInfo);
if Dateidatumzulassig(DateiInfo) then begin // if (DateiInfo.dwFileAttributes and FILE_ATTRIBUTE_HIDDEN) >0 then if Setfileattributes(Dateiname,FILE_ATTRIBUTE_NORMAL) then Deletefile(Dateiname); end; |
Re: deletefile und Konsorten
das GetFileAttributesEX brauch ich, um an das Dateidatum zu kommen.
(nicht in jedem Fall arbeite ich vorher mit FindFirst/FindNext über das ich die Werte ja auch bekäme) Und für jede Datei dann das Attribut zusetzen, bei manchmal 100 oder mehr Dateien, halte ich für ziemlich aufwendig, oder nicht? Gruß K-H |
Re: deletefile und Konsorten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 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