DiskSpace Tracker

This project is made with MS Visual C++ Version 6.0 with the latest Service Pack and
tested on Windows NT 4.0 Workstation SP4.

For a Setup I’m writing I wanted to know how much diskspace would be needed for the
setup of some components. My Setup installs Internet Explorer, Microsoft Data Access
Components, DAO and the Windows 95 Euro Update (nice isn’t it?  I say now when it’s
almost done <g>).

During those setups, mostly from Microsoft, all sorts of things happen on the drive(s).
Often there is need for additional diskspace for temporary files. I wanted to track the
disk usage during those install procedures. That should also be possible over a network
connection. When I searched the docs for stuff to do this with I found this:

BOOL GetDiskFreeSpaceEx(LPCTSTR lpDirectoryName,                      // pointer to the directory name
                        PULARGE_INTEGER lpFreeBytesAvailableToCaller, // receives the number of bytes on disk
                                                                      //   available to the caller
                        PULARGE_INTEGER lpTotalNumberOfBytes          // receives the number of bytes on disk
                        PULARGE_INTEGER lpTotalNumberOfFreeBytes      // receives the free bytes on disk)

The function can take an UNC name as a parameter for the directory name and works under
95/98/NT/2000. I wrote a simple dialog app around it. You can see what is does by looking
at the main dialog window:

DiskSpace Tracker.jpg (26445 bytes)

You can also run two instances of this program, select different drives and then watch
the values change as you move data from one disk to another. Changes of UNC and Update are
immediate when you move the cursor off. After clicking on Start (which then becomes Stop)
the window flashes every time the values on the screen are updated.

The program demonstrates the use of 64-bit integers so you can watch how much space you
have left on your new terabyte gigadisk, timerfunctions, registry access and Z-Order
manipulation. The code is pretty much self-explaining, perhaps nice for a fresh starter
with MSVC++, so have fun with it!

Download demo project - 18 KB

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read