Datei in Benutzung -> Sperren
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
jeder kennt es wahrscheinlich: Man versucht eine Datei zu löschen, und merkt (dank umfangreicher Dialogboxen), dass die Datei bereits aktuell in Benutzung ist und daher (temporär) "gesperrt" wurde. Ich habe Google schon masakriert, aber die Dame ist heute wohl etwas zickig... Jemand hier eine Idee, wie man so etwas bewerkstelligen kann? Hafe vun, MCXSC |
Re: Datei in Benutzung -> Sperren
Öffne die Datei exklusiv.
|
Re: Datei in Benutzung -> Sperren
CreateFile ... die Absätze über die Share Modes sind für Dich interessant. Ebenfalls interessant: LockFile.
Luckie geht wohl auch niemals schlafen :(. |
Re: Datei in Benutzung -> Sperren
Zitat:
Zitat:
|
Re: Datei in Benutzung -> Sperren
Luckie hat Urlaub und das wird ausgenutzt, da wird die Nacht zum Tag. ;)
|
Re: Datei in Benutzung -> Sperren
Zitat:
Ich habe nun zwei Möglichkeiten gefunden: Einmal mit einem gewissen OpenFile und einmal mit LockFileEx/UnlockFileEx. Sollte man eines davon bevorzugen? //Edit: Okay, habe mir nun mal etwas "zusammengebastelt":
Delphi-Quellcode:
Und dabei bekomme ich (zumindest bis zum sperren kommt er :D) die Fehlermeldung "Systemfehler. Code: 6. Das Handle ist ungültig."
//zum sperren
var lf_FileSize: Integer; lf_FileHandle: THandle; begin lf_FileHandle := CreateFile(PChar(Datei), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); lf_FileSize:= GetFileSize(lf_FileHandle, nil); LockFile(lf_FileHandle, 0, 0, lf_FileSize, 0); CloseHandle(lf_FileHandle); end //zum entsperren var lf_FileSize: Integer; lf_FileHandle: THandle; begin lf_FileHandle := CreateFile(PChar(Datei), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); lf_FileSize:= GetFileSize(lf_FileHandle, nil); UnlockFile(lf_FileHandle, 0, 0, lf_FileSize, 0); CloseHandle(lf_FileHandle); end; |
Re: Datei in Benutzung -> Sperren
Also bei mir geht dein Code. Probier doch mal ne andere Datei zu sperren.
Hab zwar fpc/lazarus aber das runft ja auch nur die <winAPI auf Gruß, Jan |
Re: Datei in Benutzung -> Sperren
Zitat:
|
Re: Datei in Benutzung -> Sperren
Zitat:
LockFile Damit kann man nur, wärend die Datei geöffnet ist, einen "Teil" oder Alles einer Datei sperren.
Delphi-Quellcode:
var
lf_FileSize: Integer; lf_FileHandle: THandle; begin lf_FileHandle := CreateFile(PChar(Datei), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); lf_FileSize:= GetFileSize(lf_FileHandle, nil); LockFile(lf_FileHandle, 0, 0, lf_FileSize, 0); ... UnlockFile(lf_FileHandle, 0, 0, lf_FileSize, 0); CloseHandle(lf_FileHandle); end; |
Re: Datei in Benutzung -> Sperren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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