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

标签 python windows hide ctypes python-2.x

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

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/

相关文章:

Python 中的 C++ API - SWIG、重新设计或消息传递

python - 如何将自定义错误消息附加到 Django Rest Framework 验证?

c - 如何通过rootkit列出隐藏文件/进程/regKey

javascript - 从下到上显示和隐藏div

python - Pandas - 确定 Churn 是否发生缺失年份

windows - Npm 请以 root/管理员身份再次尝试使用此命令

php - 在 Windows Server 2008 IIS 7 上从 PHP 5.2.17 升级到 5.2.6

windows - 在 Windows 上使用 FFMPEG 从图像流式传输视频

jquery - 使用 jQuery 在单击时隐藏当前表格行

python - 如何在 neo4django 模型上存储浮点值