哪位大哥帮忙注释一下代码,新手,学习中,还请尽量详细,不甚感激!~using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Globalization;
using System.Threading;namespace WindowsApplication1
{
public partial class Form1 : Form
{
private string oldName;
public Form1()
{
InitializeComponent();
} public void RunSetupCode()
{
this.treeView1.Nodes.Clear();
DriveInfo[] drivers = DriveInfo.GetDrives(); oldName = string.Empty;
TreeNode mainNode = this.treeView1.Nodes.Add("Desktop");
TreeNode myComputer = this.treeView1.Nodes.Add("My Computer"); foreach (DriveInfo d in drivers)
{
TreeNode topNode = myComputer.Nodes.Add(GetNameAndType(d));
topNode.Tag = d.Name; if (d.IsReady)
{
AddSubNodes(topNode, d.Name, true);
}
}
} string GetNameAndType(DriveInfo d)
{
return string.Format(CultureInfo.CurrentCulture, "{0} {1}", GetDriveType(d, false), d.Name.Substring(0, 2));
} string GetDriveType(DriveInfo d, bool network)
{
string typeName;
switch (d.DriveType)
{
case DriveType.Removable:
typeName = "Floppy";
break;
case DriveType.CDRom:
typeName = "CD Drive";
break;
case DriveType.Fixed:
typeName = "Local Disk";
break;
case DriveType.Network:
typeName = "Network Drive";
break;
default:
typeName = "Unknown";
break;
} return typeName;
} private void AddSubNodes(TreeNode node, string dirName, bool iterate)
{
try
{
foreach(string dir in Directory.GetDirectories(dirName))
{
bool found = false;
foreach(TreeNode tn in node.Nodes)
{
if(tn.Text == dir.Substring(dir.LastIndexOf("\\") + 1))
{
found = true;
}
}
if (!found)
{
TreeNode subNode = node.Nodes.Add(dir.Substring(dir.LastIndexOf("\\") + 1));
subNode.Tag = dir;
if (iterate)
{
AddSubNodes(subNode, dir, false);
}
}
}
}
catch (UnauthorizedAccessException uae)
{
//MessageBox.Show(uae.Message);
}
finally
{
}
} private void Form1_Load(object sender, EventArgs e)
{
RunSetupCode();
} private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
if (e.Node.Parent != null)
{
if (e.Node.Parent.Text != "Desktop")
{
foreach (TreeNode tn in e.Node.Nodes)
{
AddSubNodes(tn, tn.Tag.ToString(), false);
}
}
}
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Parent != null)
{
if (e.Node.Parent.Text != "Desktop")
{
DriveInfo d = new DriveInfo(e.Node.Tag.ToString());
if (!d.IsReady)
{
MessageBox.Show("请将磁盘插入驱动器 " + d.Name + " 中", "插入磁盘");
this.listView1.Items.Clear();
}
FillList(e.Node);
}
else
{
this.listView1.Items.Clear();
foreach (TreeNode node in e.Node.Nodes)
{
ListViewItem lvi = new ListViewItem(node.Text);
this.listView1.Items.Add(lvi);
}
}
}
else
{
this.listView1.Items.Clear();
ListViewItem lvi = new ListViewItem("My Computer");
this.listView1.Items.Add(lvi);
}
} private void FillList(TreeNode tn)
{
ListViewItem lvi;
this.listView1.Items.Clear(); foreach (string dir in Directory.GetDirectories(tn.Tag.ToString()))
{
lvi = new ListViewItem();
lvi.Text = dir.Substring(dir.LastIndexOf("\\") + 1);
lvi.SubItems.Add("");
lvi.SubItems.Add("File Folder");
lvi.SubItems.Add(Directory.GetLastWriteTime(dir).ToString(String.Format(CultureInfo.CurrentCulture, "MM{0}dd{0}yyyy hh{1}mm tt", Thread.CurrentThread.CurrentCulture.DateTimeFormat.DateSeparator, Thread.CurrentThread.CurrentCulture.DateTimeFormat.TimeSeparator), CultureInfo.CurrentCulture));
this.listView1.Items.Add(lvi);
} foreach (string nextFile in Directory.GetFiles(tn.Tag.ToString()))
{
if (((File.GetAttributes(nextFile) & FileAttributes.System) != FileAttributes.System) && ((File.GetAttributes(nextFile) & FileAttributes.Hidden) != FileAttributes.Hidden))
{
long size;
size = new FileInfo(nextFile).Length;
if (size > 0 && size < 1000)
{
size = 1;
}
else if (size > 1000)
{
size = size / 1000;
}
lvi = new ListViewItem();
lvi.Text = Path.GetFileName(nextFile);
lvi.SubItems.Add(String.Format(CultureInfo.CurrentCulture, "{0:N0} KB", size));
lvi.SubItems.Add("File");
lvi.SubItems.Add(File.GetLastWriteTime(nextFile).ToString(String.Format(CultureInfo.CurrentCulture, "MM{0}dd{0}yyyy hh{1}mm tt", Thread.CurrentThread.CurrentCulture.DateTimeFormat.DateSeparator, Thread.CurrentThread.CurrentCulture.DateTimeFormat.TimeSeparator), CultureInfo.CurrentCulture));
this.listView1.Items.Add(lvi);
}
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Globalization;
using System.Threading;namespace WindowsApplication1
{
public partial class Form1 : Form
{
private string oldName;
public Form1()
{
InitializeComponent();
} public void RunSetupCode()
{
this.treeView1.Nodes.Clear();
DriveInfo[] drivers = DriveInfo.GetDrives(); oldName = string.Empty;
TreeNode mainNode = this.treeView1.Nodes.Add("Desktop");
TreeNode myComputer = this.treeView1.Nodes.Add("My Computer"); foreach (DriveInfo d in drivers)
{
TreeNode topNode = myComputer.Nodes.Add(GetNameAndType(d));
topNode.Tag = d.Name; if (d.IsReady)
{
AddSubNodes(topNode, d.Name, true);
}
}
} string GetNameAndType(DriveInfo d)
{
return string.Format(CultureInfo.CurrentCulture, "{0} {1}", GetDriveType(d, false), d.Name.Substring(0, 2));
} string GetDriveType(DriveInfo d, bool network)
{
string typeName;
switch (d.DriveType)
{
case DriveType.Removable:
typeName = "Floppy";
break;
case DriveType.CDRom:
typeName = "CD Drive";
break;
case DriveType.Fixed:
typeName = "Local Disk";
break;
case DriveType.Network:
typeName = "Network Drive";
break;
default:
typeName = "Unknown";
break;
} return typeName;
} private void AddSubNodes(TreeNode node, string dirName, bool iterate)
{
try
{
foreach(string dir in Directory.GetDirectories(dirName))
{
bool found = false;
foreach(TreeNode tn in node.Nodes)
{
if(tn.Text == dir.Substring(dir.LastIndexOf("\\") + 1))
{
found = true;
}
}
if (!found)
{
TreeNode subNode = node.Nodes.Add(dir.Substring(dir.LastIndexOf("\\") + 1));
subNode.Tag = dir;
if (iterate)
{
AddSubNodes(subNode, dir, false);
}
}
}
}
catch (UnauthorizedAccessException uae)
{
//MessageBox.Show(uae.Message);
}
finally
{
}
} private void Form1_Load(object sender, EventArgs e)
{
RunSetupCode();
} private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
if (e.Node.Parent != null)
{
if (e.Node.Parent.Text != "Desktop")
{
foreach (TreeNode tn in e.Node.Nodes)
{
AddSubNodes(tn, tn.Tag.ToString(), false);
}
}
}
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Parent != null)
{
if (e.Node.Parent.Text != "Desktop")
{
DriveInfo d = new DriveInfo(e.Node.Tag.ToString());
if (!d.IsReady)
{
MessageBox.Show("请将磁盘插入驱动器 " + d.Name + " 中", "插入磁盘");
this.listView1.Items.Clear();
}
FillList(e.Node);
}
else
{
this.listView1.Items.Clear();
foreach (TreeNode node in e.Node.Nodes)
{
ListViewItem lvi = new ListViewItem(node.Text);
this.listView1.Items.Add(lvi);
}
}
}
else
{
this.listView1.Items.Clear();
ListViewItem lvi = new ListViewItem("My Computer");
this.listView1.Items.Add(lvi);
}
} private void FillList(TreeNode tn)
{
ListViewItem lvi;
this.listView1.Items.Clear(); foreach (string dir in Directory.GetDirectories(tn.Tag.ToString()))
{
lvi = new ListViewItem();
lvi.Text = dir.Substring(dir.LastIndexOf("\\") + 1);
lvi.SubItems.Add("");
lvi.SubItems.Add("File Folder");
lvi.SubItems.Add(Directory.GetLastWriteTime(dir).ToString(String.Format(CultureInfo.CurrentCulture, "MM{0}dd{0}yyyy hh{1}mm tt", Thread.CurrentThread.CurrentCulture.DateTimeFormat.DateSeparator, Thread.CurrentThread.CurrentCulture.DateTimeFormat.TimeSeparator), CultureInfo.CurrentCulture));
this.listView1.Items.Add(lvi);
} foreach (string nextFile in Directory.GetFiles(tn.Tag.ToString()))
{
if (((File.GetAttributes(nextFile) & FileAttributes.System) != FileAttributes.System) && ((File.GetAttributes(nextFile) & FileAttributes.Hidden) != FileAttributes.Hidden))
{
long size;
size = new FileInfo(nextFile).Length;
if (size > 0 && size < 1000)
{
size = 1;
}
else if (size > 1000)
{
size = size / 1000;
}
lvi = new ListViewItem();
lvi.Text = Path.GetFileName(nextFile);
lvi.SubItems.Add(String.Format(CultureInfo.CurrentCulture, "{0:N0} KB", size));
lvi.SubItems.Add("File");
lvi.SubItems.Add(File.GetLastWriteTime(nextFile).ToString(String.Format(CultureInfo.CurrentCulture, "MM{0}dd{0}yyyy hh{1}mm tt", Thread.CurrentThread.CurrentCulture.DateTimeFormat.DateSeparator, Thread.CurrentThread.CurrentCulture.DateTimeFormat.TimeSeparator), CultureInfo.CurrentCulture));
this.listView1.Items.Add(lvi);
}
}
}
}
}
解决方案 »
- 批量导出数据后的问题。
- 64位系统如何调用powerpoint来显示ppt?
- C#如何判断整形变量不为空
- Winform table行问题??
- 谁能帮忙设计自动登录并修改密码的程序
- 用XenoCode2005把程序集内容重命名后, 再用XmlSerializer读时出错, 请高手帮助分析一下!
- 求从select a as b,c as d ,e as f from 表名称 where xxx order by yyyy中提取a,c,e的正则表达式。
- C#WINFORM如何将access数据库的父子表一起导入到DataGrid控件中
- GridView重绘问题
- 急需vs.net的msdn!!我搜索了以前这种问题的回答,但无法下载,求求哪位仁兄帮助啊,高分送给.
- C#中 datetime 类型 相减
- y=kx+lnk,怎么求出k
这些都是基本的东西,书上都有的
自己先看看书