123456789101112131415161718192021222324252627282930 |
- import platform
- import ctypes
- def windows_only(func):
- if platform.system() != 'Windows':
- return lambda *args, **kwargs: None
- return func
- @windows_only
- def hide_file(path):
- """
- Set the hidden attribute on a file or directory.
- From http://stackoverflow.com/questions/19622133/
- `path` must be text.
- """
- __import__('ctypes.wintypes')
- SetFileAttributes = ctypes.windll.kernel32.SetFileAttributesW
- SetFileAttributes.argtypes = ctypes.wintypes.LPWSTR, ctypes.wintypes.DWORD
- SetFileAttributes.restype = ctypes.wintypes.BOOL
- FILE_ATTRIBUTE_HIDDEN = 0x02
- ret = SetFileAttributes(path, FILE_ATTRIBUTE_HIDDEN)
- if not ret:
- raise ctypes.WinError()
|