From 5ff31e7cb42d18832147707d273e4d63712d42a5 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Mon, 7 Nov 2016 22:50:01 +0100 Subject: [PATCH] Get free space on HDD function --- src/util/helper.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/util/helper.py b/src/util/helper.py index 3b5126dd..521a8a02 100644 --- a/src/util/helper.py +++ b/src/util/helper.py @@ -48,6 +48,24 @@ def openLocked(path, mode="w"): return f +def getFreeSpace(): + free_space = -1 + if "statvfs" in dir(os): # Unix + statvfs = os.statvfs(config.data_dir) + free_space = statvfs.f_frsize * statvfs.f_bavail + else: # Windows + try: + import ctypes + free_space_pointer = ctypes.c_ulonglong(0) + ctypes.windll.kernel32.GetDiskFreeSpaceExW( + ctypes.c_wchar_p(config.data_dir), None, None, ctypes.pointer(free_space_pointer) + ) + free_space = free_space_pointer.value + except Exception, err: + logging.error("GetFreeSpace error: %s" % err) + return free_space + + def shellquote(*args): if len(args) == 1: return '"%s"' % args[0].replace('"', "")