2011-05-02 42 views
13

我想調試一個問題,其中用戶偶爾會鎖定他們試圖打開的文件。該代碼似乎具有正確的異常處理,但用戶仍在報告查看錯誤消息。我怎樣才能模擬一個鎖定的文件,以便我可以自己調試?我怎樣才能模擬一個「鎖定」文件(一個有寫鎖)

編輯:對於Windows。

+0

在哪個操作系統是你想要做到這一點? – 2011-05-02 17:56:58

+0

@Will,Windows。 – Daisetsu 2011-05-02 17:57:52

+0

他們看到了什麼錯誤信息?你知道他們收到錯誤信息時是否鎖定了文件嗎? – 2011-05-02 18:02:32

回答

8

依賴,但在情況下,MS字鎖
如果你是,如果你的應用程序鎖定文件wonderig,它不RELASE鎖:
只是修改了一下你的aplication(創建testapp),從不關閉文件(並保持其運行過程中出現)

+0

Word或Excel將是我的建議,所以upvote以及真正值得... :) – 2011-05-02 18:02:18

+0

路易斯,感謝您的幫助。我會試試這個方法。 :) – Daisetsu 2011-05-16 18:13:47

10

試試這個:

(>&2 pause) >> yourfile.txt 

>>打開yourfile.txt追加模式

請參閱this以供參考

+2

我真的很喜歡這個。比使用大的MS-Software更容易鎖定我的文件 – 2016-09-14 07:46:54

0

我使用Windows API的LockFileEx函數在Python中編寫unittest。這對我來說很好(帶鎖定目標的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

相關問題