Finns det något sätt att få fram namnet på hårddisken t ex "Arkiv(F:)" Använd egenskaperna Name och VolumeLabel i klassen DriveInfo. Av någon underlig anledning, så kan jag inte få det att fungera. Här är ett exempel: Hej Per.Få fram namnet på hårddisken
Sv: Få fram namnet på hårddisken
http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspxSv:Få fram namnet på hårddisken
Sv: Få fram namnet på hårddisken
DriveInfo d=new DriveInfo("c:");
MessageBox.Show(d.VolumeLabel);
MessageBox.Show(d.Name);
Observera att om din disk i Explorern heter "local disk" så har den inget namn och VolumeLabel returnerar tomsträng. "Local disk" är alltså ett defaultnamn som Vista ger disken. Högerklicka och välj rename och ge disken ett annat namn så skall du se att VolumeLabel fungerar...Name returnerar "c:\" eller liknande...
Sv:Få fram namnet på hårddisken
Nja, jag har fortfarande problem. Jag får fram namnet, men då slutar min subdirektory att fungera.
<code>
private void FillDirectoryTree(TreeView tvw, bool isSource)
{
this.Cursor = Cursors.WaitCursor;
tvw.BeginUpdate();
int drivImage = 0;
tvw.Nodes.Clear();
tvw.Nodes.Add(System.Environment.MachineName, System.Environment.MachineName);
Application.DoEvents();
string[] strDrives = Environment.GetLogicalDrives();
foreach (string rootDirectoryName in strDrives)
{
drivImage = driveImage(rootDirectoryName);
DirectoryInfo dir = new DirectoryInfo(rootDirectoryName);
TreeNode ndRoot = new TreeNode(rootDirectoryName);
try
{
DriveInfo d = new DriveInfo(rootDirectoryName);
Application.DoEvents();
dir.GetDirectories();
ndRoot.ImageIndex = drivImage;
ndRoot.SelectedImageIndex = drivImage;
//ndRoot.Text = d.VolumeLabel +"("+d.Name +")";
tvw.Nodes.Add(ndRoot);
if (isSource)
{
ndRoot.ImageIndex = drivImage;
ndRoot.SelectedImageIndex = drivImage;
//ndRoot.Text = d.VolumeLabel + "(" + d.Name + ")";
GetSubDirectoryNodes(ndRoot, ndRoot.Text, true, 1);
}
else
{
ndRoot.ImageIndex = drivImage;
ndRoot.SelectedImageIndex = drivImage;
//ndRoot.Text = d.VolumeLabel + "(" + d.Name + ")";
GetSubDirectoryNodes(ndRoot, ndRoot.Text, false, 1);
}
Application.DoEvents();
}
catch (Exception fel)
{
lblStatus.Text = rootDirectoryName+" " + fel.Message + fel.HelpLink;
}
Application.DoEvents();
if (lblStatus.Text.Contains(@"G:\"))
lblStatus.Text = "";
}
tvw.EndUpdate();
this.Cursor = Cursors.Default;
}
</code>
..om jag bortmarkera ditt förslag(som jag nu har gjort, så fungerar det (utan labelen).