using System.IO;
using System.Management;
using (var WmiLogicalDisk = new ManagementObject(
string.Format("Win32_LogicalDisk='{0}:'", Path.GetPathRoot(Application.ExecutablePath)[0])))
using (var WmiDiskPartitionList = WmiLogicalDisk.GetRelated("Win32_DiskPartition"))
using (var WmiDiskPartitionEnum = WmiDiskPartitionList.GetEnumerator())
{
WmiDiskPartitionEnum.MoveNext();
using (var WmiDiskDriveList = ((ManagementObject)WmiDiskPartitionEnum.Current).GetRelated("Win32_DiskDrive"))
using (var WmiDiskDriveEnum = WmiDiskDriveList.GetEnumerator())
{
WmiDiskDriveEnum.MoveNext();
MessageBox.Show(WmiDiskDriveEnum.Current["PNPDeviceID"].ToString());
}
}
Работа с дисками и WinAPI в C#
Мне необходимо посекторно считать диск а так же возможность записать в каждый сектор .... таким образом хотелось бы формотировать диск (писать во все сектора 0) ну и для диплома ме нужно реализовать опр алгоритм =)
Знаю что возможно это сделать на Win API то есть работать с диском как с файлом ...но как их использовать в C# не знаю ... заранее спасибо за помощь ...
Сначала прочитайте про использование WinAPI в C#,а уж потом идите дальше.Для затравки–
Угу по поводу функции понял спасибо ... а вот про то как использовать в C# то я и не знаю с чем и обратился
Обратитесь к первым же ссылкам
Спасибо огромное ... извиняюсь за тупость ....
Хотел спросиь никто не знает как привязать программу к флешке ? то есть есть ли у флешки какой то уникальный параметр ? или можно ли как то запретить запись чтение с флешки ? или только лишь шифрование?
Конечно,у всех носителей данных есть
Если на C#, то можно примерно так:
A pointer to a variable that receives the volume serial number.
То есть это номер тома а не флешки .... этот номер можно изменить при помощи как разтаки посекторного доступа к флешки и зменения записи MBR .... но все равно спасибо
А еще варианты есть какие нить?
Еще вот какой фопрос возник ... а как определить количество ФИЗИЧЕСКИХ дисков в системе?
Код:
using System.Management;
using (var mgmtObjSearcher = new ManagementObjectSearcher(
"SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'"))
using (var mgmtObjCollection = mgmtObjSearcher.Get())
MessageBox.Show(mgmtObjCollection.Count.ToString());
using (var mgmtObjSearcher = new ManagementObjectSearcher(
"SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'"))
using (var mgmtObjCollection = mgmtObjSearcher.Get())
MessageBox.Show(mgmtObjCollection.Count.ToString());
условие WHERE InterfaceType='USB' можно убрать если не надо.
правда Usung конструкцию не пользую надобы ее изучить ...