aboutsummaryrefslogtreecommitdiff
path: root/Utility/DiskFree.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-12-10 01:18:04 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-12-10 01:18:04 -0400
commit6be1afd2596ce871eac13f2961b5dab8f2b1e87d (patch)
treee0e5846dd0dea9af4615875df7ef161ca745f99a /Utility/DiskFree.hs
parent6f57477ce09149c8aa7c22e3da858fa5be4b7729 (diff)
windows disk free space checking
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