I am developing an application in C# so whereby, if the user confirms a messagebox to formatting a USB drive, selected from a combobox list, the drive will be formatted.
I haven't got an idea how to approach this, however - I have the following code:
public static bool FormatDrive(string driveLetter,
string fileSystem = "FAT", bool quickFormat = false,
int clusterSize = 4096, string label = "", bool enableCompression = false)
{
if (driveLetter.Length != 2 || driveLetter[1] != ':' || !char.IsLetter(driveLetter[0]))
return false;
//query and format given drive
ManagementObjectSearcher searcher = new ManagementObjectSearcher
(@"select * from Win32_Volume WHERE DriveLetter = '" + driveLetter + "'");
foreach (ManagementObject vi in searcher.Get())
{
vi.InvokeMethod("Format", new object[] { fileSystem, quickFormat, clusterSize, label, enableCompression });
}
return true;
}
I'm not really sure how this works. Is this the correct way to approach formatting USB Drives? If not, could someone point me in the right direction?
I have tried looking at the Win32_Volume
class but, again, I don't really understand how it works. This question would suggest using the CreateFile
function. I have also looked at this website.
Any tips of pushing me into the right direction, would be much appreciated.