Wie kann ich eine "gesperrte" Datei simulieren (eine Schreibschloss)
Frage
Ich versuche ein Problem zu debuggen, bei dem Benutzer gelegentlich Dateien gesperrt haben, die sie öffnen versuchen. Der Code scheint eine korrekte Ausnahmebehandlung zu haben, aber Benutzer berichten immer noch, dass Fehlermeldungen angezeigt werden. Wie kann ich eine gesperrte Datei simulieren, damit ich sie selbst debuggen kann?
Bearbeiten: Für Windows.
Lösung
hängt aber falls ms wort sperrt
Wenn Sie sich wundern, ob Ihre Anwendungsdateien sperren und es keine Relace -Sperren stellt:
Ändern Sie einfach ein bisschen Ihre Aplikation (um einen TestApp zu erstellen) und schließen Sie niemals die Datei (und halten Sie sie runnig)
Andere Tipps
Versuche dies:
( >&2 pause ) >> yourfile.txt
>>
öffnet yourfile.txt
in anhängen Modus
sehen Dies als Referenz
Ich habe die LockFileex -Funktion von der Windows -API verwendet, um ein unittestes in Python zu schreiben. Dies funktionierte für mich gut (Shutil.copy () mit einem verschlossenen Ziel fehlgeschlagen).
import win32con
import win32file
import pywintypes
p = "yourfile.txt"
f = file(p, "w")
hfile = win32file._get_osfhandle(f.fileno())
flags = win32con.LOCKFILE_EXCLUSIVE_LOCK | win32con.LOCKFILE_FAIL_IMMEDIATELY
win32file.LockFileEx(hfile, flags, 0, 0xffff0000, pywintypes.OVERLAPPED())
Sehen: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365203%28v=vs.85%29.aspx