diff --git a/copyparty/httpcli.py b/copyparty/httpcli.py index 0e2dbadb..1c406407 100644 --- a/copyparty/httpcli.py +++ b/copyparty/httpcli.py @@ -10,7 +10,6 @@ import json import base64 import string import socket -import ctypes from datetime import datetime from operator import itemgetter import calendar @@ -20,6 +19,11 @@ try: except: pass +try: + import ctypes +except: + pass + from .__init__ import E, PY2, WINDOWS, ANYWIN, unicode from .util import * # noqa # pylint: disable=unused-wildcard-import from .bos import bos @@ -1917,11 +1921,14 @@ class HttpCli(object): # some fuses misbehave if not self.args.nid: if WINDOWS: - bfree = ctypes.c_ulonglong(0) - ctypes.windll.kernel32.GetDiskFreeSpaceExW( - ctypes.c_wchar_p(abspath), None, None, ctypes.pointer(bfree) - ) - srv_info.append(humansize(bfree.value) + " free") + try: + bfree = ctypes.c_ulonglong(0) + ctypes.windll.kernel32.GetDiskFreeSpaceExW( + ctypes.c_wchar_p(abspath), None, None, ctypes.pointer(bfree) + ) + srv_info.append(humansize(bfree.value) + " free") + except: + pass else: sv = os.statvfs(fsenc(abspath)) free = humansize(sv.f_frsize * sv.f_bfree, True)