命名空间: System.IO
一、操作文件夹
1、文件夹工具包
- Directory类,里面都是静态方法
Directory.Exists("路径")//检测文件夹是否存在
Directory.Move("原路径","替换路径");//替换
Directory.Delete("路径");//删除
2、文件夹对象
- DirectoryInfo类
- 创建文件夹(一次性创建所有子路径)
DirectoryInfo directoryInfo = Directory.CreateDirectory("路径");
二、操作文件
代码:
using System;
using System.IO;
using System.Text;
namespace IOSerialize
{
class Program
{
static void Main(string[] args)
{
string filePath = @"E:\编程\.Net Core\IOSerialize\IOSerialize\Log\log.txt";
string path = @"E:\编程\.Net Core\IOSerialize\IOSerialize\Log";
if (!File.Exists(filePath))
{
Directory.CreateDirectory(path);//创建文件夹
/*第一种方法*/
using(FileStream fileStream = File.Create(filePath))//创建文件,并打开文件流
{
string name = "111111222222111***********";
byte[] bytes = Encoding.Default.GetBytes(name);
fileStream.Write(bytes, 0, bytes.Length);//写数据
fileStream.Flush();//释放资源
}
/*第二种方法*/
using (FileStream fileStream = File.Create(filePath))//创建文件,并打开文件流
{
StreamWriter sw = new StreamWriter(fileStream);
sw.WriteLine("1231231235555");
sw.Flush();
}
/*续写一*/
using(StreamWriter sw = File.AppendText(filePath))
{
string msg = "续写内容:))))**&&………………";
sw.WriteLine(msg);
sw.Flush();
}
/*续写二*/
using (StreamWriter sw = File.AppendText(filePath))
{
string msg = "续写内容2:222222222222222222222";
byte[] bytes = Encoding.Default.GetBytes(msg);
sw.BaseStream.Write(bytes, 0, bytes.Length);
sw.Flush();
}
/*读取一*/
foreach(string result in File.ReadAllLines(filePath))//按行全部读取
{
Console.WriteLine(result);
}
/*读取二*/
string sResult = File.ReadAllText(filePath);//全部读取
/*读取三*/
Byte[] bytecontent = File.ReadAllBytes(filePath);//按字节全部读取
string sResultByte = Encoding.UTF8.GetString(bytecontent);
/*上面的方法都是一次性全部读取出来加载到内存,如果文件很大执行会失败。
下面是大文件的读取方法*/
using(FileStream stream = File.OpenRead(filePath))
{
int length = 5;
int result = 0;
do
{
//每次读5个字节进行操作
byte[] bytes = new byte[length];
result = stream.Read(bytes, 0, 5);
for (int i = 0; i < result; i++)
{
Console.WriteLine(bytes[i].ToString());
}
}
while (length == result);
}
/*文件操作*/
File.Copy("路径", "复制到路径");//复制
File.Move("原路径", "移动到路径");//移动(原文件会消失)
File.Delete("路径"); //删除
}
}
}
}
三、C#提供了盘符的操作类
DriveInfo
四、序列化器
二进制序列化器
BinaryFormatter
SOAP序列化器
SoapFormatter
XML序列化器
XmlFormatter
JSON序列化器
JaveScriptSerializer
JsonConvert