Beispiel #1
0
        /// <summary>
        /// Gets the space of a drive according to the DiskSpaceFlag set.
        /// </summary>
        /// <param name="driveLetter">The drive letter in the form : "C:\\" or @"C:\"</param>
        /// <param name="flags">The specified disk flag for how the diskspace is retrieved</param>
        /// <returns>The diskspace in bytes as an unsigned long</returns>
        public static ulong GetFreeSpace(string driveLetter, DiskSpaceFlags flags)
        {
            ulong freeBytesAvailable;
            ulong totalNumberOfBytes;
            ulong totalNumberOfFreeBytes;

            GetDiskFreeSpaceEx(driveLetter, out freeBytesAvailable, out totalNumberOfBytes, out totalNumberOfFreeBytes);

            switch (flags)
            {
                case DiskSpaceFlags.FreeBytesAvailable:
                    return freeBytesAvailable;

                case DiskSpaceFlags.TotalNumberOfBytes:
                    return totalNumberOfBytes;

                case DiskSpaceFlags.TotalNumberOfFreeBytes:
                    return totalNumberOfFreeBytes;
            }

            return 0;
        }
Beispiel #2
0
        /// <summary>
        /// Gets the space of a drive according to the DiskSpaceFlag set.
        /// </summary>
        /// <param name="driveLetter">The drive letter in the form : "C:\\" or @"C:\"</param>
        /// <param name="flags">The specified disk flag for how the diskspace is retrieved</param>
        /// <returns>The diskspace in bytes as an unsigned long</returns>
        public static ulong GetFreeSpace(string driveLetter, DiskSpaceFlags flags)
        {
            ulong freeBytesAvailable;

            ulong totalNumberOfBytes;
            ulong totalNumberOfFreeBytes;

            GetDiskFreeSpaceEx(driveLetter, out freeBytesAvailable, out totalNumberOfBytes, out totalNumberOfFreeBytes);

            switch (flags)
            {
            case DiskSpaceFlags.FreeBytesAvailable:
                return(freeBytesAvailable);

            case DiskSpaceFlags.TotalNumberOfBytes:
                return(totalNumberOfBytes);

            case DiskSpaceFlags.TotalNumberOfFreeBytes:
                return(totalNumberOfFreeBytes);
            }

            return(0);
        }