You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
714 B
30 lines
714 B
4 years ago
|
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()
|