Get Drive Disk Information using 'C#'
To get information about a custom drive disk, including details like TotalSize
, AvailableFreeSpace
, and BusySpace
programmatically using C# , you should follow the below steps in details:
Steps
1) Develop a Configuration
class to centralize the collection of all application configurations
public class Configuration
{
}
2) Create a readonly properity it's type DriveInfo with namespace
private readonly DriveInfo _drive;
3) Create constructor that inject DriveInfo
public Configuration(DriveInfo drive)
{
_drive = drive;
}
4) Create function with name : DriveSize
public (double, double, double) DriveSize()
{
}
5) Within the previous method, we should utilize the _drive object, which contains more detailed drive information .
double totalSize = _drive.TotalSize;
double availableFreeSpace = _drive.AvailableFreeSpace;
double busySpace = totalSize - availableFreeSpace;
_drive.TotalSize
: Retrieve the total size for the drive.
_drive.AvailableFreeSpace
: Retrieve the available Free Space for the drive.
6) Develop a BusinessLogic
class to that call configuration class
7) Navigate to Web.Config and add new key " LogPath
" with value " E:\Logs
"
<configuration>
<appSettings>
<!-- This is the path of logs on custom server -->
<add key="LogPath" value="E:\Logs" />
</appSettings>
</configuration>
8) Retrieve a value from the Web.Config file.
static string Location = ConfigurationManager.AppSettings["LogPath"];
9) Instantiate an object from the DriveInfo class within this class, using 'Location' as a parameter
static DriveInfo drive = new DriveInfo(Location);
10) Call Configuration
class to use all contain method such as : DriveSize()
Configuration conf = new Configuration(drive);
11) Call method using conf.DriveSize()
Code Snippets:
public class Configuration
{
private readonly DriveInfo _drive;
public Configuration(DriveInfo drive)
{
_drive = drive;
}
public (double, double, double) DriveSize()
{
//string driveName = drive.Name;
if (!_drive.IsReady)
{
throw new DriveNotFoundException();
}
double totalSize = _drive.TotalSize;
double availableFreeSpace = _drive.AvailableFreeSpace;
double busySpace = totalSize - availableFreeSpace;
return (totalSize, availableFreeSpace, busySpace);
}
}