diff options
Diffstat (limited to 'src/KM_fileio.cpp')
| -rw-r--r-- | src/KM_fileio.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/KM_fileio.cpp b/src/KM_fileio.cpp index d00031c..9808cfd 100644 --- a/src/KM_fileio.cpp +++ b/src/KM_fileio.cpp @@ -57,6 +57,7 @@ struct iovec { # if defined(__linux__) # include <sys/statfs.h> # else +# include <sys/param.h> # include <sys/mount.h> # endif @@ -1504,17 +1505,17 @@ Kumu::DeletePath(const std::string& pathname) Result_t Kumu::FreeSpaceForPath(const std::string& path, Kumu::fsize_t& free_space, Kumu::fsize_t& total_space) -{
+{ #ifdef KM_WIN32 - ULARGE_INTEGER lTotalNumberOfBytes;
+ ULARGE_INTEGER lTotalNumberOfBytes; ULARGE_INTEGER lTotalNumberOfFreeBytes; BOOL fResult = ::GetDiskFreeSpaceEx(path.c_str(), NULL, &lTotalNumberOfBytes, &lTotalNumberOfFreeBytes); - if (fResult) {
+ if (fResult) { free_space = static_cast<Kumu::fsize_t>(lTotalNumberOfFreeBytes.QuadPart); total_space = static_cast<Kumu::fsize_t>(lTotalNumberOfBytes.QuadPart); return RESULT_OK; - }
+ } HRESULT LastError = ::GetLastError(); DefaultLogSink().Error("FreeSpaceForPath GetDiskFreeSpaceEx %s: %lu\n", path.c_str(), ::GetLastError()); |
