// <summary>
// 获取所有逻辑盘并列出硬盘所有目录
// </summary>
private void ListDrives()
{
TreeNode tn;
// 获取系统中的所有逻辑盘
string[] drives = Directory.GetLogicalDrives();
// 向树视图中添加节点
tvDir.BeginUpdate();
for(int i=0;i<drives.Length;i++)
{
// 根据驱动器的不同类型来确定所进行的操作
switch( GetDriveType( drives[i] ))
{
case 2: // 软驱
// 如果是软驱,则仅向树视图中添加节点
// 而不列举它的目录,并且它的图像索引以及
// 处于选择状态下的图像索引分别为 0 和 0
tn = new TreeNode( drives[i] ,0,0);
break;
case 3: // 硬盘
// 如果是硬盘,则除了向树视图中添加节点外,
// 还要列举出它的目录
tn = new TreeNode( drives[i],1,1);
ListDirs(tn,drives[i]); // 列举硬盘中的目录
break;
case 5: // 光驱
// 如果是光驱,则仅向树视图中添加节点
tn = new TreeNode( drives[i],2,2);
break;
default: // 在默认情况下,按软驱的情况进行处理
tn = new TreeNode( drives[i] ,0,0);
break;
}
tvDir.Nodes.Add( tn ); // 把创建的节点添加到树视图中
}
tvDir.EndUpdate();
// 把 C 盘设为当前选择节点
tvDir.SelectedNode = tvDir.Nodes[1];
}
public MainForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
nDirLevel = 0; // 把列举深度初始化为 0
ListDrives(); // 获取逻辑驱动器并列出硬盘中的目录