Python ctypes模块无法';无法为NAS分区找到正确的可用磁盘空间

Python ctypes模块无法';无法为NAS分区找到正确的可用磁盘空间,python,ctypes,Python,Ctypes,我正在尝试从远程计算机上查找NAS机箱上的可用磁盘空间。为此,我的Python脚本使用以下内容: import ctypes fbytes = ctypes.c_ulonglong(0) tbytes = ctypes.c_ulonglong(0) path = "<My NAS path>" success = ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(path),ctypes.pointer(fbyte

我正在尝试从远程计算机上查找NAS机箱上的可用磁盘空间。为此,我的Python脚本使用以下内容:

import ctypes
fbytes = ctypes.c_ulonglong(0)
tbytes = ctypes.c_ulonglong(0)
path = "<My NAS path>"
success = ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(path),ctypes.pointer(fbytes),ctypes.pointer(tbytes), None)
free_bytes = fbytes.value
total_bytes = tbytes.value
导入ctypes
fbytes=ctypes.c_ulonglong(0)
t字节=ctypes.c_ulonglong(0)
path=“”
success=ctypes.windell.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(路径),ctypes.pointer(fbytes),ctypes.pointer(tbytes),无)
自由字节=fbytes.value
总字节数=tbytes.value

这无法找到正确的值。在我的NAS机箱上,我有两个分区。作为NAS驱动器共享的分区有将近380GB的可用空间,但另一个分区有8GB的可用空间。上面的代码为我提供了8GB的可用空间,而不是380GB。

结果取决于
path
变量的值;在我的NAS上,我有12个共享,在3个分区上,指定不同的共享将返回持有它的分区的值;i、 e:

path = r'\\NAS\photo'
...
print free_bytes # returns 380098863104L
...
...
path = r'\\NAS\docs'
...
print free_bytes # returns 91234780389L

什么是
成功
路径
?另外,您应该使用
byref
而不是
指针来传递。您没有提供所使用的
路径的具体示例,因此我只引用文档中唯一一行似乎相关的内容:如果此参数是UNC名称,则必须包含一个尾随反斜杠,例如,“\\MyServer\MyShare\”.理想情况下,它应该这样做。然而,在我的例子中,它显示了另一个分区的可用空间。你知道这什么时候会发生吗?如何排除这种情况?请做一个简单的测试-而不是NAS,将其指向本地hdd分区,并查看其报告是否正确;我推测它与NAS共享配置有关。如果我提供一个本地路径,它就可以正常工作。但当我给出NAS路径时就不是了。