【发布时间】:2019-02-12 19:43:22
【问题描述】:
我正在使用用户 Augustin 在此处发布的解决方案:very quickly getting total size of folder
folderPath = r"C:\Users\e46ldc\Documents"
fso = com.Dispatch("Scripting.FileSystemObject")
folder = fso.GetFolder(folderPath)
MB = 1024 * 1024.0
print("%.2f MB" % (folder.Size / MB))
发生的异常如下,仅在顶层的 C:\Users\(user) 或 Documents 上发生。我可以在更下方的文件夹(即下载或文档中的文件夹)上完美运行它:
Traceback (most recent call last):
File "C:\Users\e46ldc\AppData\Local\Programs\Python\Python37-32\win32dirinfo.py", line 14, in <module>
print("%.2f MB" % (folder.Size / MB))
File "C:\Users\e46ldc\AppData\Local\Programs\Python\Python37-32\lib\site-packages\win32com\client\dynamic.py", line 516, in __getattr__
ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146828218), None)
经过大量挖掘,似乎这是一个权限错误。但是,即使以管理员身份运行脚本,我仍然会遇到它。我已经验证它可以正确找到文件夹,并且我可以使用 os.walk() 或 scandir 等其他方法正常访问该文件夹。
有没有办法解决这个问题?这种方法是我测试过的最快的获取 Windows 目录大小的方法,所以我希望我仍然可以使用它。
【问题讨论】:
标签: python python-3.x pywin32 win32com