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