21

I am trying to debug a problem where users occasionally have locked files which they try to open. The code appears to have correct exception handling but users are still reporting seeing error messages. How can I simulate a locked file so that I can debug this myself?

EDIT: For Windows.

peak
  • 105,803
  • 17
  • 152
  • 177
Daisetsu
  • 4,846
  • 11
  • 50
  • 70
  • What error messages are they seeing? Do you know for sure that they have locked files when they get the error message? – Ralph Winters May 02 '11 at 18:02
  • @Ralph, no I don't know if it's a locked file but it seems the most likely. I was also thinking it may be a file which was accessed over a network which lost a connection. This is just my first step in debugging. – Daisetsu May 02 '11 at 19:02
  • Also check to see if there are any intermittent system processes which run during that time which may be locking the folder. – Ralph Winters May 02 '11 at 22:39
  • Some very useful answers to the same question on [Superuser](http://superuser.com/questions/294826/how-to-purposefully-exclusively-lock-a-file), including one to just invoke `notepad > fileToLock` from the command line (though it'll overwrite the file contents of course, but useful for simulating locks). – Amos M. Carpenter Oct 07 '16 at 01:24

4 Answers4

38

try this:

( >&2 pause ) >> yourfile.txt

>> opens yourfile.txt in append mode

see this for a reference

Zahra
  • 6,798
  • 9
  • 51
  • 76
7

depends, but in case, MS word locks
if you are wonderig if your application lock files and it do not relase locks:
just modify a bit your aplication (to create a testapp) and never close the file (and keep it runnig)

Saic Siquot
  • 6,513
  • 5
  • 34
  • 56
0

I used LockFileEx function from the Windows API to write a unittest in Python. This worked well for me (shutil.copy() with a locked target fails).

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())

See: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365203%28v=vs.85%29.aspx

Mayra Delgado
  • 531
  • 4
  • 17
0

I am using this command prompt

type yourfile.txt | more

to insert inside yourfile.txt a very long text of "few pages" and want to pipe via | more to batch the insertion. However the file seems to lock, any reason why?

cokeman19
  • 2,405
  • 1
  • 25
  • 40
SpongeB0B
  • 79
  • 1
  • 9