在Windows操作系统上的文件夹设置“隐藏”属性?

试图隐藏文件夹没有成功。 我发现这个:

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

但它对我没有用。 我究竟做错了什么?

Solutions Collecting From Web of "在Windows操作系统上的文件夹设置“隐藏”属性?"

你的代码有两个错误,都与文件夹名字面值有关。 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还解释了为什么这不是WAP版本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”+“文件名”)