2 * Copyright (c) 2000, Red Hat, Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * A copy of the GNU General Public License can be found at
12 * Written by DJ Delorie <dj@cygnus.com>
16 /* The purpose of this file is to hide the mess needed just to figure
17 out how full a given disk is. There is an old API that can't
18 handle disks bigger than 2G, and a new API that isn't always
22 #include "filemanip.h"
26 diskfull (const std::string
& path
)
28 ULARGE_INTEGER avail
, total
, free
;
29 size_t len
= path
.size () + 7;
32 mklongpath (wpath
, path
.c_str (), len
);
33 if (GetDiskFreeSpaceExW (wpath
, &avail
, &total
, &free
))
35 int perc
= avail
.QuadPart
* 100 / total
.QuadPart
;