星空网 > 软件开发 > ASP.net

初识IO流之小型资源管理器

初次接触到IO流,根据书本上的知识,加上自己的摸索,发现了一些好玩的事情.(书本上的知识或多或少,有时候不足以解决我们的问题!这时候我们就应该自己去求解!!!

所以我们学习的时候要抱有探索的精神,求知若渴是帮助我们获取更多知识的一种积极的精神态度,需要保持)

小型资源管理器

初识IO流之小型资源管理器

该项目主要是为了加载电脑磁盘中存在的所有文件夹和文件(directory,file)

这时候我遇到了第一个问题:书本上只有将指定的磁盘设为根节点,在窗体TreeView中添加该磁盘中的文件夹

(我去,那如果我的电脑上分了几十个磁盘分区,那我不得全指定了?我觉得微软肯定不会这么二,肯定有关于所有磁盘的类.

Disk是磁盘的意思,我就试了试,结果 = = 没有这个类,你妹的,我只好慢慢来)

然后就有了

 

初识IO流之小型资源管理器初识IO流之小型资源管理器
 1     private void GetDirectoryInDisk() 2     { 3       DriveInfo[] allDisk = System.IO.DriveInfo.GetDrives(); 4       foreach (DriveInfo item in allDisk) 5       { 6          7           TreeNode treeNode = new TreeNode(); 8           treeNode.Text = item.Name; 9           treeNode.Tag = item;10           tvAllDirectoryInfo.Nodes.Add(treeNode);11           DirectoryInfo directory = item.RootDirectory;12           //获取驱动器下所有的文件夹信息13           DirectoryInfo[] allDirectory = directory.GetDirectories();14           foreach (DirectoryInfo dir in allDirectory)15           {16             TreeNode subTreeNode = new TreeNode();17             subTreeNode.Text = dir.Name;18             subTreeNode.Tag = dir;19             treeNode.Nodes.Add(subTreeNode);20           }21         22       }23     }

所有磁盘为根节点

 

结果华丽丽的爆了个这么个错误

初识IO流之小型资源管理器

(当时就有种去你妹的冲动,静下心来有发现了磁盘类型)

初识IO流之小型资源管理器初识IO流之小型资源管理器
 1   // 摘要: 2   //   定义驱动器类型常数,包括 CDRom、Fixed、Network、NoRootDirectory、Ram、Removable 和 Unknown。 3   [Serializable] 4   [ComVisible(true)] 5   public enum DriveType 6   { 7     // 摘要: 8     //   驱动器类型未知。 9     Unknown = 0,10     //11     // 摘要:12     //   此驱动器没有根目录。13     NoRootDirectory = 1,14     //15     // 摘要:16     //   此驱动器是一个可移动存储设备,如软盘驱动器或 USB 闪存驱动器。17     Removable = 2,18     //19     // 摘要:20     //   此驱动器是一个固定磁盘。21     Fixed = 3,22     //23     // 摘要:24     //   此驱动器是一个网络驱动器。25     Network = 4,26     //27     // 摘要:28     //   此驱动器是一个光盘设备,如 CD 或 DVD-ROM。29     CDRom = 5,30     //31     // 摘要:32     //   此驱动器是一个 RAM 磁盘。33     Ram = 6,34   }

磁盘类型

我就增加了一道判断解决了这个问题(学校的一个磁盘是虚拟光驱,产生了设备未就绪的问题)

初识IO流之小型资源管理器初识IO流之小型资源管理器
 1       foreach (DriveInfo item in allDisk) 2       { 3         if (item.DriveType == DriveType.Fixed) 4         { 5           TreeNode treeNode = new TreeNode(); 6           treeNode.Text = item.Name; 7           treeNode.Tag = item; 8           tvAllDirectoryInfo.Nodes.Add(treeNode); 9           DirectoryInfo directory = item.RootDirectory;10           //获取驱动器下所有的文件夹信息11           DirectoryInfo[] allDirectory = directory.GetDirectories();12           foreach (DirectoryInfo dir in allDirectory)13           {14             TreeNode subTreeNode = new TreeNode();15             subTreeNode.Text = dir.Name;16             subTreeNode.Tag = dir;17             treeNode.Nodes.Add(subTreeNode);18           }19         }20       }

修改

接下来就是文件或文件夹的复制问题了.(右键菜单添加复制和删除)

文件夹是没办法跨磁盘移动的,如果要移动只能在同一驱动器下!

初识IO流之小型资源管理器初识IO流之小型资源管理器
 1     private void CopyDirectory(string srcdir, string desdir) 2     { 3       string folderName = srcdir.Substring(srcdir.LastIndexOf("\\") + 1); 4  5       string desfolderdir = desdir + "\\" + folderName; 6  7       if (desdir.LastIndexOf("\\") == (desdir.Length - 1)) 8       { 9         desfolderdir = desdir + folderName;10       }11       string[] filenames = Directory.GetFileSystemEntries(srcdir);12 13       foreach (string file in filenames)// 遍历所有的文件和目录14       {15         if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件16         {17 18           string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);19           if (!Directory.Exists(currentdir))20           {21             Directory.CreateDirectory(currentdir);22           }23 24           CopyDirectory(file, desfolderdir);25         }26 27         else // 否则直接copy文件28         {29           string srcfileName = file.Substring(file.LastIndexOf("\\") + 1);30 31           srcfileName = desfolderdir + "\\" + srcfileName;32 33 34           if (!Directory.Exists(desfolderdir))35           {36             Directory.CreateDirectory(desfolderdir);37           }38 39 40           File.Copy(file, srcfileName);41         }42       }//foreach 43     }

文件或文件夹复制

使用递归操作.

这个小项目到这里就告一段落了,要学习的东西还有很多,继续努力.

 

 




原标题:初识IO流之小型资源管理器

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊定制商品是否可以退货呢?Amazon定制品退货政策:https://www.kjdsnews.com/a/1310728.html
非洲互联网的血液,手机品类为何能在Jumia霸榜:https://www.kjdsnews.com/a/1310729.html
2月15日起,买家在亚马逊商城购买的定制商品,将无法再退货!:https://www.kjdsnews.com/a/1310730.html
什么是CE证书?CE标志是什么?深圳CE认证公司:https://www.kjdsnews.com/a/1310731.html
​斋月,会迎来今年的第一波旺季吗?:https://www.kjdsnews.com/a/1310732.html
亚马逊2022年财报从“狂飙”到“刹车”,2023年将如何扭转颓势~~:https://www.kjdsnews.com/a/1310733.html
Lazada与菲律宾银行合作,引入BNPL支付服务:https://www.goluckyvip.com/news/218218.html
企业家的10个创新科技商业理念:https://www.kjdsnews.com/a/1842119.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流