- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.1 C#的优势 1.1 C#的优势 1.1 C#的优势 1.1 C#的优势 1.1 C#的优势 1.1 C#的优势 1.1 C#的优势 (8)因为在本例要使用动态链接库kernel32.dll中的非托管代码,所以在类中添加以 下代码: [DllImport(kernel32)] static extern uint GetDriveType(string name); // 该函数用来获取磁盘的大小和可用空间 [DllImport(kernel32)] static extern bool GetDiskFreeSpaceEx ( string lpDirectoryName, ref long lpFreeBytesAvailable, ref long lpTotalNumberOfBytes, ref long lpTotalNumberOffFreeBytes ); // 获取所有逻辑盘并列出硬盘中的所有目录 public 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; } tvDir.Nodes.Add(tn); // 把创建的节点添加到树视图中 } tvDir.EndUpdate(); // 把C盘设为当前选择节点 tvDir.SelectedNode = tvDir.Nodes[1]; } //列出指定目录 private void ListDirs(TreeNode tn,string strDir) { if (nDirLevel4) { nDirLevel=0; return; } nDirLevel++; string[] arrDirs; TreeNode tmpNode; try { // 获取指定目录下的所有目录 arrDirs=Directory.GetDirectories(strDir); if(arrDirs.Length==0) return; (9)添加其他功能函数。 // 把每一个子目录添加到参数传递进来的树视图节点中 for(int i=0;iarrDirs.Length;i++) { tmpNode=new TreeNode(Path.GetFileName(arrDirs[i]),3,4); // 对于每一个子目录,都进行递归列举 ListDirs(tmpNode,arrDirs[i]); tn.Nodes.Add(tmpNode); } } catch { return ; } } // 列出指定目录下的所有子目录和文件
文档评论(0)