c# 的生成一.
c# 的生成一,根文件名(文件不是固定的,是得的)树的节点名字是此文件下的子文件的名字,树的内容对应文件的一个层次。!
[解决办法]
http://blog.csdn.net/zgke/archive/2008/11/29/3408133.aspx
看看这个 可能对你有帮助
[解决办法]
顶顶
[解决办法]
- C# code
private void Form1_Load(object sender, EventArgs e) { imageList1.Images.Clear(); treeView1.Nodes.Clear(); foreach (string cpname in Directory.GetLogicalDrives()) { if (cpname == "C:\\") { continue; } Win32.SHFILEINFO shfi = new Win32.SHFILEINFO(); DirectoryInfo dir = new DirectoryInfo(cpname); //获得图标 Win32.SHGetFileInfo(cpname, (uint)0x80, ref shfi, (uint)System.Runtime.InteropServices.Marshal.SizeOf(shfi), (uint)(0x100 | 0x400)); //取得Icon和TypeName //添加图标 imageList1.Images.Add(dir.Name, (Icon)Icon.FromHandle(shfi.hIcon).Clone()); TreeNode node = new TreeNode(dir.Name); node.ImageIndex = imageList1.Images.Count - 1; node.SelectedImageIndex = imageList1.Images.Count - 1; node.Name = dir.FullName; treeView1.Nodes.Add(node); Win32.DestroyIcon(shfi.hIcon); node.Nodes.Add(lsnode); node.Tag = true; } treeView1.CollapseAll(); }/// <summary> /// 针对文件目录 /// </summary> private void GetListViewItem(string path, TreeNode snode) { string[] dirs = Directory.GetDirectories(path); string[] files = Directory.GetFiles(path); Win32.SHFILEINFO shfi = new Win32.SHFILEINFO(); for (int i = 0; i < dirs.Length; i++) { try { DirectoryInfo dir = new DirectoryInfo(dirs[i]); if (dir.Name == "auto.exe" || dir.Name == "Autorun.inf" || dir.Name == "RECYCLER" || dir.Name == "System Volume Information" || dir.Name == "$RECYCLE.BIN") continue; //获得图标 Win32.SHGetFileInfo(dirs[i], (uint)0x80, ref shfi, (uint)System.Runtime.InteropServices.Marshal.SizeOf(shfi), (uint)(0x100 | 0x400)); //取得Icon和TypeName //添加图标 imageList1.Images.Add(dir.Name, (Icon)Icon.FromHandle(shfi.hIcon).Clone()); TreeNode node = new TreeNode(dir.Name); node.Name = dir.FullName; node.ImageIndex = imageList1.Images.Count - 1; node.SelectedImageIndex = imageList1.Images.Count - 1; node.Tag = true; snode.Nodes.Add(node); node.Nodes.Add(lsnode); Win32.DestroyIcon(shfi.hIcon); } catch { } } for (int i = 0; i < files.Length; i++) { try { FileInfo fi = new FileInfo(files[i]); //获得图标 Win32.SHGetFileInfo(files[i], (uint)0x80, ref shfi, (uint)System.Runtime.InteropServices.Marshal.SizeOf(shfi), (uint)(0x100 | 0x400)); //取得Icon和TypeName //添加图标 imageList1.Images.Add(fi.Name, (Icon)Icon.FromHandle(shfi.hIcon).Clone()); TreeNode node = new TreeNode(fi.Name); node.Name = fi.FullName; node.ImageIndex = imageList1.Images.Count - 1; node.SelectedImageIndex = imageList1.Images.Count - 1; snode.Nodes.Add(node); Win32.DestroyIcon(shfi.hIcon); } catch { } } }
[解决办法]
- C# code
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) { TreeNode node = e.Node; if (node.Tag == null || Convert.ToBoolean(node.Tag) == false) return; if (node.FirstNode.Text == lsnode) { node.Nodes.Clear(); GetListViewItem(node.Name, node); } }
[解决办法]
- C# code
private void drawLog() { treeView1.Nodes.Clear(); dateTime = StartTimePickerStemShow.Value; year = dateTime.Year.ToString(); month = dateTime.Month.ToString(); day = dateTime.Day.ToString(); if (Convert.ToInt32(month) < 10) { month = "0" + month; } if (Convert.ToInt32(day) < 10) { day = "0" + day; } treeView1.Nodes.Add(year + " - " + month + " - " + day); treeView1.Nodes[0].Nodes.Add("Normal Files"); treeView1.Nodes[0].Nodes.Add("Quality Files"); DirInfo = new DirectoryInfo("C:\\Awdon\\stemdone\\" + year + "\\" + month + "\\" + day + "\\"); if (checkFoders(DirInfo)) { FileInfo[] fi = DirInfo.GetFiles("*.stem"); int count = 1; foreach (FileInfo a in fi) { string filename = a.ToString().Substring(0, a.ToString().Length - 5); string file = filename.Substring(8); treeView1.Nodes[0].Nodes[0].Nodes.Add(file); if (count == fi.Length) { viewFile(file, DirInfo + a.ToString()); } count++; } FileInfo[] fi_hfile = DirInfo.GetFiles("*.hstem"); foreach (FileInfo a in fi_hfile) { string filename = a.ToString().Substring(0, a.ToString().Length - 6); string file = filename.Substring(8); treeView1.Nodes[0].Nodes[1].Nodes.Add(file); } treeView1.Nodes[0].Expand(); treeView1.Nodes[0].Nodes[0].Expand(); treeView1.Nodes[0].Nodes[1].Expand(); draawIt(); } }
[解决办法]
string lsnode = "-ls-";
少了个变量晕