30 lines
714 B
Python
30 lines
714 B
Python
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()
|