1,文件与文件夹的读取(针对Windows )

这是程序员的基本功。
做这种操作首先要引入一个命名空间

using System.IO
I input 输入
O output 输出File.Create("C:\1.txt");
file是个静态类,里面有很多方法,多是基于面向对象而设计的,所以单词好,f12进入代码,自己用。
//上面的创建是不行的对于Windows10,因为安全文件是不随便写入系统硬盘的。
//如果强行写入改变安全权限,但这么做没什么意义。
//可以创建一个文件夹,安全权限改成完全控制。Directory 目录文件夹//这是f盘Youkumoive下所有文件夹string[] a = Directory.GetDirectories(@"F:\Youkumoive", "*", SearchOption.AllDirectories);//Directory 目录以字符串数组返回盘符的路径foreach (var item in a){Console.WriteLine(item);}//F:\classic moive下的文件,只是这个目录下的string[] files = Directory.GetFiles(@"F:\classic moive");foreach (var item in files){Console.WriteLine(item);}//directory 的升级版 directoryinfo,可以得到文件或文件夹的更多信息//普通类DirectoryInfo dir = new DirectoryInfo(@"F:\classic moive");FileInfo[] files1 = dir.GetFiles();foreach (var item in files1){Console.WriteLine(item.Name);//只得到该文件夹下的文件名}DirectoryInfo[] info = dir.GetDirectories();//得到文件夹的信息

2,文件的读取与写入

    //创建文件流,没有就创建一个文件,有则打开文件FileStream fs = new FileStream(@"E:\Txt\1.txt", FileMode.OpenOrCreate);//写入文件的工具StreamWriter sw = new StreamWriter(fs);sw.WriteLine("Hello World!");sw.Close();fs.Close();//读取文件StreamReader sr = new StreamReader(@"E:\Txt\1.txt");//批量读取文件string str = sr.ReadToEnd();sr.Close();fs.Close();Console.WriteLine(str);string path = @"E:\Txt\work.txt";FileStream fs1 = new FileStream(path, FileMode.OpenOrCreate);StreamReader sr1 = new StreamReader(fs1);//逐行读取string str1;while (!sr1.EndOfStream){str1 = sr1.ReadLine();Console.WriteLine(str1);}fs1.Close();

3,二进制文件的写入和读取
类:

  [Serializable]//必须在类前声明这个类是可序列化的class Pet{public string name, sex, age;public Pet(){ }public Pet(string name,string sex,string age){this.name = name;this.sex = sex;this.age = age;}}

序列化如下:

         string path = @"E:\Txt\2019 9 20\csdn.border";     FileStream fs = new FileStream(path,FileMode.OpenOrCreate);//new一个二进制序列化器BinaryFormatter bf = new BinaryFormatter();//把这个类进行序列化,来写入硬盘Pet p = new Pet("小猪","公","2");bf.Serialize(fs,p);//关流   fs.Close();

反序化如下

 string path = @"E:\Txt\2019 9 20\csdn.border";     //读取这个对象的字段FileStream fs = new FileStream(path,FileMode.OpenOrCreate);BinaryFormatter bf = new BinaryFormatter();//反序列化,返回object类型,所以要转型为pet类Pet p = bf.Deserialize(fs) as Pet;fs.Close();//打印写入硬盘里类的字段Console.WriteLine(p.name + p.sex + p.age);//结果:小猪公2

Conclusion:
序列化的优点:可以把类,或者集合,快速的写入硬盘,不像文本文档xier
要拘泥于格式,和很多代码。
缺点:没有可读性。
作用:把硬盘和泛型集合完美的结合。
注意点:不能对二进制文件做任何的改变,否则计算机识别不了。

.Net 中读取和写入.Xml文件
.Xml 是大多数公司和程序员所承认的小范围的通信协议。其它还有json,文本操作等等。
如html则输入全球标准的通信协议。
.Xml 即一个公司和一个公司协议,以什么形式写入,以什么形式解析文件。

Using System.Xml;XmlDocument doc = new XmlDocument();string path = @"E:\Txt\2019 9 23\users.xml";
//判断是否存在子节点
if (doc.ChildNodes[0].HasChildNodes)
{}
//以下是一个三层结构的.xml文件。//创建xml文件XmlNode node = doc.CreateElement("UserInfo");//根节点userinfodoc.AppendChild(node);//其余节点XmlNode User = doc.CreateElement("User");XmlNode Uid = doc.CreateElement("Uid");XmlNode Name = doc.CreateElement("Name");XmlNode Pwd = doc.CreateElement("Pwd");XmlNode Age = doc.CreateElement("age");XmlNode Remark = doc.CreateElement("Remark");Uid.InnerText = "001";Name.InnerText = "Admin";Pwd.InnerText = "123";Age.InnerText = "20";Remark.InnerText = "我是一个管理员";//user下的子节点User.AppendChild(Uid);User.AppendChild(Name);User.AppendChild(Pwd);User.AppendChild(Age);User.AppendChild(Remark);//根节点下的子节点node.AppendChild(User);doc.Save(path);//解析for (int i = 0; i < doc.ChildNodes[0].ChildNodes.Count; i++){//删除一个节点(根节点下的子节点)doc.ChildNodes[0].RemoveChild(ChildNodes[0].ChildNodes[i]);//就是删除一个remark
//打印001              Console.WriteLine(doc.ChildNodes[0].ChildNodes[i].ChildNodes[0].InnerText);
//三个nodes 。最后一个nodes,这个是灵活多变的。但是层数不要太多,不方便读取
//子节点追加在哪里,决定该节点的父子关系。
//xml有且只有一个根节点。即上面的userinfo有且只有一个。}

.net中的硬盘操作(针对Windows )相关推荐

  1. Windows系统中让硬盘更快的九大绝招

    Windows系统中让硬盘更快的九大绝招 一.合理使用硬盘  何为合理使用硬盘呢?首先我们要了解硬盘盘片的物理结构.分区并格式化后的硬盘却是以扇区为基本单位的,一个分区是由若干个扇区构成的.那什么是扇 ...

  2. 中睿职称计算机考试模块,2012年衡阳市中睿典职称计算机Windows模块操作试题及答案.doc...

    2012年衡阳市中睿典职称计算机Windows模块操作试题及答案 2012年衡阳市Windows模块操作试题及答案 摘要:衡阳市2012年职称计算机考试报名时间:2012年6月5日-6月9日. 一.报 ...

  3. {电脑救助站}常用知识1 来自常用知识( 网络安全中起重大作用的 Windows 命令)

    常用知识( 网络安全中起重大作用的 Windows 命令) 常用在线查毒链接 3 楼       超级兔子的在线检测功能 4楼       准确探索间谍软件或广告软件 5楼         预防间谍软 ...

  4. Hadoop集群中添加硬盘

    Hadoop工作节点扩展硬盘空间 接到老板任务,Hadoop集群中硬盘空间不够用,要求加一台机器到Hadoop集群,并且每台机器在原有基础上加一块2T硬盘,老板给力啊,哈哈. 这些我把完成这项任务的步 ...

  5. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  6. C、C++和MFC中文件的操作

    对文件读写的三种方法   1.C中     FILE *pFile=fopen("1.txt","w"); fwrite(" http://www.s ...

  7. VC++编程中的文件操作API和CFile类

    VC++编程中的文件操作API和CFile类 在VC编程中,操作文件的方法主要有两种:利用API函数和MFC的CFile类.微软在其中封装了文件的一般操作,下面我就介绍一下如何利用这两种方法实现文件操 ...

  8. oracle 操作树大全,在Oracle中的树形操作

    在Oracle中的树形操作 在Oracle中的树形操作 1.取子节点及路径(正树): select t.id ,t.code, t.name ,t.pid ,SYS_CONNECT_BY_PATH(t ...

  9. 【raid5数据恢复】服务器RAID5中一块硬盘亮黄灯被踢出导致raid崩溃的数据恢复

    服务器数据恢复环境: 3U戴尔机架式服务器 SAS接口硬盘 Windows操作系统 100个125GB硬盘组成的RAID5 故障: 一块盘亮黄灯,被raid卡踢出后,raid崩溃.联系北亚数据恢复中心 ...

最新文章

  1. linux vino vnc,vino-server和vncserver在教学环境中的典型应用
  2. 第一章:1.1.4信号运算
  3. input python 验证int_全国计算机二级Python真题解析-1
  4. FPGA中计数器设计探索
  5. 经历过贫穷,才知道做穷人意味着什么
  6. 中国 IT 行业平均工资再次碾压金融业,意味着什么?
  7. leetcode:骑士在棋盘上的概率
  8. 线性可分支持向量机 凸二次规划解决原问题 python
  9. 如何快速移除pdf密码?用这个工具就够了
  10. 电动自行车CE认证、电动滑板车CE认证审核新标准解析
  11. BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)
  12. 关于VMBox重启无法打开虚拟机问题
  13. Java-Tcp/Ip-CS控制台聊天应用Demo
  14. 条件if语句的多种写法
  15. solr 通过DIH方式导入创建索引
  16. QQ音乐播放器部分笔记
  17. JSON.stringify()浅析
  18. 阿宽食品冲刺深交所:年销售11亿 高瓴与茅台建信是股东
  19. kafka 消费者详解
  20. 定位云原生数据中台,「智领云」获数千万元A轮融资

热门文章

  1. 前端学习(547):node的系统模块fs
  2. 前端学习(520):圣杯布局
  3. java面试题34下面关于程序编译说法正确的是()
  4. 59 javabean的创建
  5. java 头尾 队列_Java数据结构之队列(动力节点Java学院整理)
  6. 纯CSS实现侧边栏/分栏高度自动相等
  7. [资源分享] Github上八千Star的深度学习500问教程
  8. springboot security 权限不足_springBoot整合springSecurity(零一)
  9. zip转直链php,蓝奏网盘直链转换器
  10. (HDU)1019 --Least Common Multiple(最小公倍数)