On 31/08/2011 13:38, Steffen Frömer wrote:
i try to check, if a file on network-share is read only. I tried different ways.
What you're checking is the readonly attribute (which has been there since DOS version x.0). If that is what you intended to check, then I don't think I can offer anything: you're doing exactly what I've have done myself. The only qualifier is that read-only on a directory has no real meaning on Windows: the OS uses it as a marker that the directory is system-special (eg My Documents). But if you're checking a file then what you're doing seems valid. However, if you're trying to determine whether a file is available for writing by the current user regardless of the setting of the readonly attribute, then your code won't help. You've got two options: * Attempt to get a write lock on the file (without actually writing anything, obviously) and if that fails with Access Denied then you're not allowed to write. (It also fails if the read-only attribute is set). <code> import win32file import win32con import ntsecuritycon filename = r"c:\windows\system32\drivers\etc\hosts", win32file.CreateFile ( ntsecuritycon.FILE_GENERIC_WRITE, 0, ## exclusive write None, win32con.OPEN_ALWAYS, 0, None ) </code> * Use the less-than-straightforward AccessCheck API which isn't exposed by core Python nor by the pywin32 extensions. (Frankly, I should just contribute a patch to pywin32 since it gets asked for often enough). TJG _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32