Установить атрибут «скрыть» на папки в ОС Windows?

Попытка скрыть папку без успеха. Я нашел это:

import ctypes ctypes.windll.kernel32.SetFileAttributesW('G:\Dir\folder1', 2) 

но это не сработало для меня. Что я делаю не так?

В коде есть две вещи, которые связаны с буквенным именем папки. Для функции SetFileAttributesW() требуется строковый аргумент Unicode. Вы можете указать один из них, префикс строки с символом u . Во-вторых, любые буквальные символы обратной косой черты в строке должны быть удвоены или вы можете [также] добавить к ней префикс r . В приведенном ниже коде используется двойной префикс.

 import ctypes FILE_ATTRIBUTE_HIDDEN = 0x02 ret = ctypes.windll.kernel32.SetFileAttributesW(ur'G:\Dir\folder1', FILE_ATTRIBUTE_HIDDEN) if ret: print('attribute set to Hidden') else: # return code of zero indicates failure -- raise a Windows error raise ctypes.WinError() 

Здесь вы можете найти системные коды ошибок Windows. Чтобы увидеть результаты изменения атрибута в Проводнике, убедитесь, что опция «Показать скрытые файлы» не включена.

Чтобы проиллюстрировать то, что @eryksun сказал в комментарии об организации преобразования в Unicode из строк байта, чтобы это произошло автоматически, вам нужно будет сделать следующее, прежде чем вызывать функцию, чтобы указать правильное преобразование своих аргументов. @eryksun также объясняет, почему это не по умолчанию для указателей на строки в версиях W функций WinAPI – см. комментарии.

 ctypes.windll.kernel32.SetFileAttributesW.argtypes = ( ctypes.c_wchar_p, ctypes.c_uint32) 

Затем это будет работать (обратите внимание, что по-прежнему требуется префикс r из-за обратных косых черт):

 ret = ctypes.windll.kernel32.SetFileAttributesW(r'G:\Dir\folder1', FILE_ATTRIBUTE_HIDDEN) 

Попробуйте этот код .: Импорт os Os.System ("attrib + h" + "имя файла")