- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
using System.Management;
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_DiskDrive");
foreach(ManagementObject queryObj in searcher.Get())
{
foreach(ManagementObject o in queryObj.GetRelated("Win32_DiskPartition"))
{
foreach(ManagementBaseObject b in o.GetRelated("Win32_LogicalDisk"))
{
Debug.WriteLine(" #Name: {0}", b["Name"]);
}
}
// One of: USB, IDE
Debug.WriteLine("Interface: {0}", queryObj["InterfaceType"]);
Debug.WriteLine("--------------------------------------------");
}
}
catch (ManagementException f)
{
Debug.WriteLine(f.StackTrace);
Тру кодер изобрел собственный способ получения сведений о дисках.
WinApi для петушков.
Но ведь это действительно так.
/0
Пингвин и есть питух.
Получить список дисков (с проверкой их на профпригодность) на Windows всегда было проще пареной репы.
Вон сколько функций для этого
http://msdn.microsoft.com/en-us/library/ff551069%28VS.85%29.aspx
Попробуйте попросите линуксоидов, чтобы сделали свою недоось удобнее.
Портировать шарп на линукс - об этом даже помышлять грешно.
Скорее галкин разведется с пугачихой, чем это случится.
До тех пор, пока не будет жестко-строгого стандарта на внутренее устройство оп.систем, никакой кроссплатформенности не будет. А что происходит сейчас ничто иное как игра в кроссплатформенность.
Обилие гомосексуалистов - яркое тому подтверждение.
Они просто забыли что это такое :)
Mono же...
Кроссплатформенность это уже не только линукс. Почитай про WinRT. Если мне не изменяет память, то юзавшие апишки напрямую в WinRT соснут хуйца, ибо там все апишки другие ;)
соснут хуец
Пример нашел там, где меньше всего ожидал найти.
http://msdn.microsoft.com/en-us/library/cc542456%28v=VS.85%29.aspx
(как получить список дисков засунутых в usb)
Треш угар и содомия, достойные отдельного ГК ))
Думаю коду вот этой тулзы: http://support.microsoft.com/kb/264203 должны занять достойной место на говнокодике.
P.S. >> Может, стоит вынуть ручки из ануса?
А у вас до сих пор отопления нет и вы их там греете? Сочуствую.
Это твоя мама.
Да и сам девайс можно иногда очень долго из разных мест выковыривать. Но пользователям МС Виндовс этого не понять. Им бы хоть просто с ярлыками дисков разобраться.
То нехрен ему знать на каких дисках что лежит :)
> Если используется фьюз
Ну тут само собой. Но в винде, кстати, тоже можно делать такие штуки. Junction points вроде называются. И винда тоже умеет монтировать диски в папки, а не только на c: d: и.т.п. Просто в винде это юзают достаточно редко.
Такое давно уже есть в /proc и /sys. fuse просто позволяет не лезть в ядро, если хочется запилить что-то подобное. Мы юзали его на предыдущей работе, когда разрабатывали своё хранилище данных, чтобы прозрачно лазить в него через юниксовые утилиты.
Да тут еще и симлинки радости добавляют...
Я просто спустал junction и reparse. http://msdn.microsoft.com/en-us/library/windows/desktop/aa365503%28v=vs.85%29.aspx. Аналогия не полная, но репарс поинты вроде как вполне можно поюзать и для сетевых фс, и для архивов, и для прочей виртуальной фигни. Там же никто не заставляет хранить сами данные в самом reparse point'е.
Вот только непонятно, работают ли "драйверы" этой виндовой штуки как обычные проги в юзерспейсе как и во фьюзе, или же нужно писать настоящий драйвер.
Реализуй MS что-то своё собственное, тогда наоборот бы орали: вот же есть международный стандарт, почему его не взяли??? Оло-ло! Пыщь! Пыщь!
http://www.grok.ru/895
http://boosh.ucoz.ru/forum/4-11-1\
http://sariolla.ru/index.php?option=com_content&view=articl e&id=104