Come posso simulare un file "bloccato" (uno che ha un blocco di scrittura)
Domanda
Sto cercando di eseguire il debug di un problema in cui gli utenti hanno occasionalmente file bloccato che cercano di aprire. Il codice sembra avere una corretta gestione delle eccezioni, ma gli utenti stanno ancora segnalando vedendo messaggi di errore. Come posso simulare un file bloccato in modo da poter eseguire il debug da solo?
Modifica: per Windows.
Soluzione
Dipende, ma nel caso in cui i blocchi di Word MS
Se sei meravigliato se i file di blocco dell'applicazione e non inoltrano i blocchi:
Basta modificare un po 'la tua apice (per creare un testApp) e non chiudere mai il file (e mantenerlo runnig)
Altri suggerimenti
prova questo:
( >&2 pause ) >> yourfile.txt
>>
si apre yourfile.txt
in aggiungere modalità
vedere questo per un riferimento
Ho usato la funzione Lockfileex dall'API di Windows per scrivere un unittest in Python. Questo ha funzionato bene per me (shutil.Copy () con un bersaglio bloccato fallisce).
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())
Vedere: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365203%28v=vs.85%29.aspx