sawMedlem sedan mars 20011 880 inlägg Svaren på mina frågor har kanske varit lite tunsådda, men jag försöker en gång till.
När man använder sig av Directory.GetLogicalDrives, hur kan man skillja på vilken typ det är(floppy,hårddisk, cdrom ect?
string []hårddiskar = Directory.GetLogicalDrives();
foreach (string hårddisk in hårddiskar)
{
listBox1.Items.Add(hårddisk);
}
Hur får jag fram detta? jag detta?
GladhMedlem sedan maj 20012 812 inlägg Vad jag har förstått så är det lite tunsått :) med egenskaper för filer i .NET. Jag antar att det inte går eftersom det returneras en array av strängar och inte en array av objekt.
Min gissning blir att du får använda dig av gammla hederliga Win32 API för att få ut den informationen, tyvärr vet jag inte hur, men det kan man säkert söka upp på nätet :-)
- M
fredrikMedlem sedan dec. 19991 072 inlägg sawMedlem sedan mars 20011 880 inlägg Det såg ju kanon ut, men det var ju för VB.net.
Hur översätter man detta till C#?
Imports System
Imports System.Management
' Disktypes - NoRoot = 1; Removable = 2; LocalDisk = 3; Network = 4; CD = 5; RAMDrive = 6;
Public Class Wmis
Public Shared Sub Main()
Dim disks As New ManagementClass("Win32_LogicalDisk")
Dim moc As ManagementObjectCollection = disks.GetInstances()
Dim mo As ManagementObject
For Each mo In moc
Console.WriteLine("Disk type : {0}", mo("DriveType").ToString())
Next mo
disks.Dispose()
End Sub 'Main
End Class
Imports System.Management fillns ju inte i C#
JonMedlem sedan juli 20011 304 inlägg Trixade ihop ett litet utökat konverterat program åt dig :)
För att komma åt System.Management måste du lägga till en referens till just System.Management i ditt projekt.
i visual studio.net gör fu det genom att högerklicka på references i solution explorer och välja add reference.
using System;
using System.Management;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
ManagementClass disks = new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection moc = disks.GetInstances();
foreach(ManagementObject mo in moc)
{
int drivetype = Int16.Parse(mo.GetPropertyValue("DriveType").ToString());
Console.WriteLine("-----------------------------------");
Console.WriteLine("Name : " + mo.GetPropertyValue("Name").ToString());
Console.WriteLine("Disk type : {0}", GetDT(drivetype));
if(mo.GetPropertyValue("FreeSpace") != null)
Console.WriteLine("FreeSpace: " + mo.GetPropertyValue("FreeSpace").ToString());
if(mo.GetPropertyValue("Size") != null)
Console.WriteLine("Size: " + mo.GetPropertyValue("Size").ToString());
Console.WriteLine("-----------------------------------");
Console.WriteLine("");
}
disks.Dispose();
Console.ReadLine();
}
static string GetDT(int type)
{
switch(type)
{
case 1:
return "NoRoot";
case 2:
return "Removable";
case 3:
return "LocalDisk";
case 4:
return "Network";
case 5:
return "CD";
case 6:
return "RamDrive";
default:
return "Mr boombastic har ingen aning....";
}
}
}
}
sawMedlem sedan mars 20011 880 inlägg Tack, jag skall kolla upp detta hur jag kan få det att fungera.