summaryrefslogtreecommitdiff
path: root/Utility/DiskFree.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/DiskFree.hs')
-rw-r--r--Utility/DiskFree.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/Utility/DiskFree.hs b/Utility/DiskFree.hs
index aa1bfeedb..1f23ff512 100644
--- a/Utility/DiskFree.hs
+++ b/Utility/DiskFree.hs
@@ -31,8 +31,18 @@ getDiskFree path = withFilePath path $ \c_path -> do
safeErrno (Errno v) = v == 0
#else
+#ifdef mingw32_HOST_OS
+
+import System.Win32.File
+
+getDiskFree :: FilePath -> IO (Maybe Integer)
+getDiskFree path = catchMaybeIO $ do
+ (sectors, bytes, nfree, _ntotal) <- getDiskFreeSpace (Just path)
+ return $ toInteger sectors * toInteger bytes * toInteger nfree
+#else
getDiskFree :: FilePath -> IO (Maybe Integer)
getDiskFree _ = return Nothing
#endif
+#endif