gpt4 book ai didi

python - 在 Windows 操作系统中的文件夹上设置 "hide"属性?

转载 作者:可可西里 更新时间:2023-11-01 09:41:14 25 4
gpt4 key购买 nike

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

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

但它对我不起作用。我做错了什么?

最佳答案

您的代码有两处错误,都与文件夹名称文字有关。 SetFileAttributesW() 函数需要一个 Unicode 字符串参数。您可以通过在字符串前加上字符 u 来指定其中之一。其次,字符串中的任何文字反斜杠字符都必须加倍,或者您可以 [also] 添加 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 的系统错误代码 here .要在资源管理器中查看属性更改的结果,请确保其“显示隐藏文件”选项启用。

为了说明@Eryk Sun 在关于安排自动从字节字符串转换为 Unicode 的评论中所说的内容,您需要在调用函数以指定正确的其参数的转换。 @Eryk Sun 还解释了为什么这不是 WinAPI 函数的 W 版本中字符串指针的默认值——请参阅评论。

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)

关于python - 在 Windows 操作系统中的文件夹上设置 "hide"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19622133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com