Как я могу симулировать "заблокированный" файл (тот, который имеет блокировку записи) - PullRequest
15 голосов
/ 02 мая 2011

Я пытаюсь отладить проблему, когда пользователи иногда блокируют файлы, которые они пытаются открыть.Код, кажется, имеет правильную обработку исключений, но пользователи все еще сообщают, что видят сообщения об ошибках.Как я могу симулировать заблокированный файл, чтобы я мог отладить его сам?

РЕДАКТИРОВАТЬ: Для Windows.

Ответы [ 3 ]

20 голосов
/ 11 мая 2015

попробуйте это:

( >&2 pause ) >> yourfile.txt

>> открывает yourfile.txt в добавьте режим

см. это для справки

7 голосов
/ 02 мая 2011

зависит, но в случае MS Word блокируется
если вы выиграли, если ваше приложение блокирует файлы и оно не связывает блокировки:
просто немного измените ваше приложение (для создания testapp) и никогда не закрывайте файл (и держите его в рабочем состоянии)

0 голосов
/ 14 сентября 2016

Я использовал функцию LockFileEx из Windows API для написания юнит-теста на 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...