.net中的硬盘操作(针对Windows )
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 )相关推荐
- Windows系统中让硬盘更快的九大绝招
Windows系统中让硬盘更快的九大绝招 一.合理使用硬盘 何为合理使用硬盘呢?首先我们要了解硬盘盘片的物理结构.分区并格式化后的硬盘却是以扇区为基本单位的,一个分区是由若干个扇区构成的.那什么是扇 ...
- 中睿职称计算机考试模块,2012年衡阳市中睿典职称计算机Windows模块操作试题及答案.doc...
2012年衡阳市中睿典职称计算机Windows模块操作试题及答案 2012年衡阳市Windows模块操作试题及答案 摘要:衡阳市2012年职称计算机考试报名时间:2012年6月5日-6月9日. 一.报 ...
- {电脑救助站}常用知识1 来自常用知识( 网络安全中起重大作用的 Windows 命令)
常用知识( 网络安全中起重大作用的 Windows 命令) 常用在线查毒链接 3 楼 超级兔子的在线检测功能 4楼 准确探索间谍软件或广告软件 5楼 预防间谍软 ...
- Hadoop集群中添加硬盘
Hadoop工作节点扩展硬盘空间 接到老板任务,Hadoop集群中硬盘空间不够用,要求加一台机器到Hadoop集群,并且每台机器在原有基础上加一块2T硬盘,老板给力啊,哈哈. 这些我把完成这项任务的步 ...
- Python中的文件操作和异常
Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...
- C、C++和MFC中文件的操作
对文件读写的三种方法 1.C中 FILE *pFile=fopen("1.txt","w"); fwrite(" http://www.s ...
- VC++编程中的文件操作API和CFile类
VC++编程中的文件操作API和CFile类 在VC编程中,操作文件的方法主要有两种:利用API函数和MFC的CFile类.微软在其中封装了文件的一般操作,下面我就介绍一下如何利用这两种方法实现文件操 ...
- oracle 操作树大全,在Oracle中的树形操作
在Oracle中的树形操作 在Oracle中的树形操作 1.取子节点及路径(正树): select t.id ,t.code, t.name ,t.pid ,SYS_CONNECT_BY_PATH(t ...
- 【raid5数据恢复】服务器RAID5中一块硬盘亮黄灯被踢出导致raid崩溃的数据恢复
服务器数据恢复环境: 3U戴尔机架式服务器 SAS接口硬盘 Windows操作系统 100个125GB硬盘组成的RAID5 故障: 一块盘亮黄灯,被raid卡踢出后,raid崩溃.联系北亚数据恢复中心 ...
最新文章
- linux vino vnc,vino-server和vncserver在教学环境中的典型应用
- 第一章:1.1.4信号运算
- input python 验证int_全国计算机二级Python真题解析-1
- FPGA中计数器设计探索
- 经历过贫穷,才知道做穷人意味着什么
- 中国 IT 行业平均工资再次碾压金融业,意味着什么?
- leetcode:骑士在棋盘上的概率
- 线性可分支持向量机 凸二次规划解决原问题 python
- 如何快速移除pdf密码?用这个工具就够了
- 电动自行车CE认证、电动滑板车CE认证审核新标准解析
- BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)
- 关于VMBox重启无法打开虚拟机问题
- Java-Tcp/Ip-CS控制台聊天应用Demo
- 条件if语句的多种写法
- solr 通过DIH方式导入创建索引
- QQ音乐播放器部分笔记
- JSON.stringify()浅析
- 阿宽食品冲刺深交所:年销售11亿 高瓴与茅台建信是股东
- kafka 消费者详解
- 定位云原生数据中台,「智领云」获数千万元A轮融资
热门文章
- 前端学习(547):node的系统模块fs
- 前端学习(520):圣杯布局
- java面试题34下面关于程序编译说法正确的是()
- 59 javabean的创建
- java 头尾 队列_Java数据结构之队列(动力节点Java学院整理)
- 纯CSS实现侧边栏/分栏高度自动相等
- [资源分享] Github上八千Star的深度学习500问教程
- springboot security 权限不足_springBoot整合springSecurity(零一)
- zip转直链php,蓝奏网盘直链转换器
- (HDU)1019 --Least Common Multiple(最小公倍数)