Gesperrte Dateien löschen
aus Code-Library -> Object-Pascal / Delphi-Language -> Gesperrte Dateien löschen
irgendwie seh ich doppelt
Delphi-Quellcode:
oder kurzgesagt ... was ist hier der Unterschied?
// NT/2K/XP/.NET Systeme
if StrLen(PChar(ExtractFileDrive(aFileName))) < 3 then Result := MoveFileEx(PChar(aFileName), nil, MOVEFILE_REPLACE_EXISTING + MOVEFILE_DELAY_UNTIL_REBOOT) else Result := MoveFileEx(PChar(aFileName), nil, MOVEFILE_REPLACE_EXISTING + MOVEFILE_DELAY_UNTIL_REBOOT); |
Re: Gesperrte Dateien löschen
Hi,
Sieht für mich auch identisch aus :gruebel: ... aber sollten die Optionen nicht mit OR statt mit + verknüpft werden? mfG mirage228 |
Re: Gesperrte Dateien löschen
so lange man die konstanten nicht doppelt angiebt oder es konstanten mit zusammengefassten werten gibt ist das kein problem.
binär: 10 + 01 = 11 10 or 01 = 11 also jeweils da gleiche ergebnis. zu der frage oben ich kann auch keinen unterschied entdecken. |
Re: Gesperrte Dateien löschen
Hallo, himitsu!
Der erste Teil wird ausgeführt wenn die kleiner als Len 3 sind, um Fehleingaben wie C:\ zu umgehen der zweite Teil geht in Aktion wenn z. B. C: übergeben wurde. Dieser Code ist aber meines Erachtens zweifach fehlerhaft, weil ja ein hier ein 'C:\' = Len 3 übergeben werden kann. Richtig muss es heißen, da ja ein FilePath mit der Laufwerksangabe wohl mindestens 4 Buchstaben haben muss und z. B. so aussieht: C:\a und wenn Len < 4 ist, wird nix gelöscht und result:=false; gesetzt.
Delphi-Quellcode:
Ich hoffe, ich konnte Dir weiterhelfen!
if StrLen(PChar(ExtractFileDrive(aFileName))) < 4 then
Result := False; // Falls Filename z. B. nur aus C:\ besteht else Result := MoveFileEx(PChar(aFileName), nil, MOVEFILE_REPLACE_EXISTING + MOVEFILE_DELAY_UNTIL_REBOOT); Beste Grüße. Go2EITS |
Re: Gesperrte Dateien löschen
Ein bissl hab ich mir sowa schon gedacht .. wollte aber unsere Mieze nich die Arbeit wegnehmen :roll:
Das Problem war halt nur, das in dem OriginalCode diese IF-Abrafge total sinnlos ist ... wird ja so, oder so das selbe ausgeführt :stupid: |
Re: Gesperrte Dateien löschen
Genau. In dem Falle ist die IF Abfrage sinnlos. Kannst aber meinen Code in eine Function mit Boolean stecken. Wenn der Path kleiner als 4 Buchstaben sein sollte, kannst Du ein False zurückgeben. Nicht schöner Code, weil ja auch die Function MoveFileEx ja auch FALSE zurückgeben kann, aber für den Zweck sicherlich vorerst ausreichend. CU :hi:
|
DP-Maintenance
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Windows API / MS.NET Framework API" verschoben.
Fehler ist korrigiert. Vielen Dank für den Hinweis und die Lösung. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 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