私のテストコードは次のとおりです。
#!/usr/bin/env python
import win32com.client
def GetFolderSizeQuick(target_folder):
fso = win32com.client.Dispatch("Scripting.FileSystemObject")
fobj = fso.GetFolder(target_folder)
return fobj.size
print(GetFolderSizeQuick("d:/pytools"))
print(GetFolderSizeQuick("d:/cygwin"))
結果は次のとおりです。
D:\>python a.py
160659697
Traceback (most recent call last):
File "a.py", line 10, in <module>
print(GetFolderSizeQuick("d:/cygwin"))
File "a.py", line 7, in GetFolderSizeQuick
return fobj.size
File "D:\Applications\Python33\lib\site-packages\win32com\client\dynamic.py",
line 511, in __getattr__
ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)
pywintypes.com_error: (-2147352567, '发生意外。', (0, None, None, None, 0, -2146828218), None)
d:/pytools フォルダーでの最初の呼び出し GetFolderSizeQuick は機能します。約153MBです。しかし、2 回目の呼び出しは失敗しました。フォルダ d:/cygwin は約 12.6GB です。
私はpython3.3.0 32ビットバージョンでWindows 7に取り組んでいます。したがって、結果を保存するために32ビットまたは64ビットで問題が発生したと思います。32bit int は 12.6GB のサイズを格納できません。
ここでの本当の問題は何ですか、それを修正する方法は?