Index: src/ch/TLocalFilesystem.cpp =================================================================== diff -u -N -r117248f68a61e817de78e501c44ccb4ac7c97ec9 -r4be0f47d68a1a161529dc55901659b9daec996e3 --- src/ch/TLocalFilesystem.cpp (.../TLocalFilesystem.cpp) (revision 117248f68a61e817de78e501c44ccb4ac7c97ec9) +++ src/ch/TLocalFilesystem.cpp (.../TLocalFilesystem.cpp) (revision 4be0f47d68a1a161529dc55901659b9daec996e3) @@ -22,11 +22,10 @@ // ============================================================================ #include "stdafx.h" #include "TLocalFilesystem.h" +#include #include "TAutoHandles.h" #include "FileInfo.h" #include "DataBuffer.h" -#include -#include "FileSupport.h" #include UINT TLocalFilesystem::GetDriveData(const chcore::TSmartPath& spPath) @@ -275,6 +274,20 @@ return pDiskExtent->DiskNumber; } +bool TLocalFilesystem::GetDynamicFreeSpace(const chcore::TSmartPath& path, unsigned long long& rullFree) +{ + rullFree = 0; + + ULARGE_INTEGER ui64Available, ui64Total; + if(GetDiskFreeSpaceEx(path.ToString(), &ui64Available, &ui64Total, NULL)) + { + rullFree = ui64Available.QuadPart; + return true; + } + else + return false; +} + ///////////////////////////////////////////////////////////////////////////////////// // class TLocalFilesystemFind @@ -384,7 +397,12 @@ if(!IsOpen()) return false; - return (SetFilePointer64(m_hFile, llNewPos, dwMoveMethod) != -1); + LARGE_INTEGER li = { 0, 0 }; + LARGE_INTEGER liNew = { 0, 0 }; + + li.QuadPart = llNewPos; + + return SetFilePointerEx(m_hFile, li, &liNew, dwMoveMethod) != FALSE; } bool TLocalFilesystemFile::SetEndOfFile()