「ロックされた」ファイル(書き込みロックがあるもの)をシミュレートするにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/5860542

  •  28-10-2019
  •  | 
  •  

質問

私は、ユーザーが時々開けようとするファイルをロックしている問題をデバッグしようとしています。コードは正しい例外処理を持っているように見えますが、ユーザーはまだエラーメッセージの表示を報告しています。これを自分でデバッグできるように、ロックされたファイルをシミュレートするにはどうすればよいですか?

編集:Windows用。

役に立ちましたか?

解決

依存しますが、場合によっては、ms wordはロックされます
アプリケーションがファイルをロックし、ロックを再確認しないかどうかを不思議に思う場合:
(testAppを作成するために)aplicationを少し変更して、ファイルを閉じないでください(そしてそれをrunnigに保ちます)

他のヒント

これを試して:

( >&2 pause ) >> yourfile.txt

>> 開く yourfile.txt追加 モード

見る これ 参照用

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top