https://issues.dlang.org/show_bug.cgi?id=16487
--- Comment #4 from b2.t...@gmx.com --- (In reply to Johan Engelen from comment #3) > Version that actually compiles on Windows too: > ``` > // Returns ulong.max when the available disk space could not be determined. > ulong getAvailableDiskSpace(string path) > { > import std.string: toStringz; > version (Windows) > { > import std.path; > import core.sys.windows.winbase; > import core.sys.windows.winnt; > import std.internal.cstring; > > ULARGE_INTEGER freeBytesAvailable; > path ~= dirSeparator; > auto success = GetDiskFreeSpaceExW(path.tempCStringW(), > &freeBytesAvailable, null, null); > return success ? freeBytesAvailable.QuadPart : ulong.max; > } > else > { > import core.sys.posix.sys.statvfs; > > statvfs_t stats; > int err = statvfs(path.toStringz(), &stats); > return !err ? stats.f_bavail * stats.f_frsize : ulong.max; > } > } > ``` what I would say if it'd be a PR: 1. change declaration to ulong getAvailableDiskSpace(const(char)[] path) because const(char)[] acts as a wildcard and takes all char[] variants. 2. returns -1 on failure. ulong.max: No way !!! 3. linux version: don't need to init the target so statvfs_t stats = void; Otherwise let's get the merge ;) --