]> cygwin.com Git - cygwin-apps/setup.git/blame - diskfull.cc
Also localize options helptext framing text
[cygwin-apps/setup.git] / diskfull.cc
CommitLineData
23c9e63c
DD
1/*
2 * Copyright (c) 2000, Red Hat, Inc.
3 *
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.
8 *
9 * A copy of the GNU General Public License can be found at
10 * http://www.gnu.org/
11 *
12 * Written by DJ Delorie <dj@cygnus.com>
13 *
14 */
15
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
19 available. */
20
21#include "win32.h"
7cc4d95e 22#include "filemanip.h"
23c9e63c
DD
23#include "diskfull.h"
24
23c9e63c 25int
08678720 26diskfull (const std::string& path)
23c9e63c 27{
7cc4d95e
CV
28 ULARGE_INTEGER avail, total, free;
29 size_t len = path.size () + 7;
30 WCHAR wpath[len];
23c9e63c 31
7cc4d95e
CV
32 mklongpath (wpath, path.c_str (), len);
33 if (GetDiskFreeSpaceExW (wpath, &avail, &total, &free))
23c9e63c 34 {
7cc4d95e 35 int perc = avail.QuadPart * 100 / total.QuadPart;
b24c88b3 36 return 100 - perc;
23c9e63c 37 }
23c9e63c
DD
38 return 0;
39}
This page took 0.120614 seconds and 5 git commands to generate.