「ロックされた」ファイル(書き込みロックがあるもの)をシミュレートするにはどうすればよいですか
質問
私は、ユーザーが時々開けようとするファイルをロックしている問題をデバッグしようとしています。コードは正しい例外処理を持っているように見えますが、ユーザーはまだエラーメッセージの表示を報告しています。これを自分でデバッグできるように、ロックされたファイルをシミュレートするにはどうすればよいですか?
編集:Windows用。
解決
依存しますが、場合によっては、ms wordはロックされます
アプリケーションがファイルをロックし、ロックを再確認しないかどうかを不思議に思う場合:
(testAppを作成するために)aplicationを少し変更して、ファイルを閉じないでください(そしてそれをrunnigに保ちます)
他のヒント
Windows APIのLockFileEx関数を使用して、Pythonで非イト的なものを書き込みました。これは私にとってうまくいきました(ロックされたターゲットが失敗したshutil.copy()が失敗します)。
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())
見る: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365203%28v = vs.85%29.aspx
所属していません StackOverflow