如何模拟“锁定”文件(具有写锁定的文件)

时间:2011-05-02 17:51:29

标签: windows simulate filelock

我正在尝试调试用户偶尔会锁定他们尝试打开的文件的问题。代码似乎具有正确的异常处理,但用户仍在报告查看错误消息。如何模拟锁定的文件以便我自己调试?

编辑:适用于Windows。

4 个答案:

答案 0 :(得分:20)

试试这个:

( >&2 pause ) >> yourfile.txt

>>追加模式

中打开yourfile.txt

请参阅this以获取参考资料

答案 1 :(得分:8)

取决于,但万一,MS字锁 如果你不确定你的应用程序是否锁定文件并且它没有重新锁定: 只修改你的应用程序(创建一个testapp),永远不要关闭文件(并保持运行)

答案 2 :(得分:0)

我使用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

答案 3 :(得分:0)

我正在使用此命令提示符

type yourfile.txt | more

yourfile.txt内插入一个很长的“几页”文本,并希望通过| more用管道传输来批量插入。 但是文件似乎已锁定,为什么?