IO操作,MD5

Directory.GetFiles、GetDirectories

只有一个参数的:只搜索这个路径下的子节点,不会继续往下搜索

两个参数的:在这个路径下按照第二个参数搜索模式进行搜索,搜索子文件,可以指定通配符限定。表示任意长度、?表示一个长度字符。例如.png搜索png的后缀图片路径

三个参数的,默认只取当前目录下的文件或目录,SearchOption.TopDirectoryOnly只弄顶级目录,AllDirectories所有目录
string dir = “Assets”;
例如:Directory.GetFiles(dir); 只会搜索Assets下一级的文件,不会带上目录
例如:Directory.GetFiles(dir,".png"),搜索Assets下一级的png文件
特别的:Directory.GetFiles(dir,"
")等价于Directory.GetFiles(dir)
例如:Directory.GetFiles(dir,".png",SearchOption.AllDirectories),表示搜索Assets路径下所 有的png文件
Directory.GetFiles(dir,"
",SearchOption.TopDirectoryOnly)等价于Directory.GetFiles(dir)

FileStream

FileStream 可以随机读写文件 使用 Seek 方法
Seek() ----------有两个参数 第一参数规定文件指针以字节为单位移动的距离。第二个参数规定开始计算的位置
用 SeekOrigin 枚举的一个值表示 : SeekOrigin 有三个值:Begin Current End。
aFile.Seek(8,SeekOrigin.Begin)---------将文件的指针移动到第八个字节。起始位置就是文件的第一个字节。
aFile.Seek(-5,SeekOrigin.End); 从文件的末尾向前查找五个字节。。
aFile.Seek(2,SeekOrigin.Current);

往文件结束位置写入文件。
FileStream fs = new FileStream(path,FileMode.Append,FileAccess.Write);

异步写入和读取
BeginRead和BeginWrite
记得用完需要调用Close()和Dispose()释放

FileInfo

FileInfo info = new FileInfo(path);
提供创建、复制、删除、移动和打开文件的属性和实例方法,并且帮助创建 FileStream 对象。 此类不能被继承。获取最后修改时间

Path

Path.GetFileName(path)等价于path.Split(’/’).Last();
Path.GetExtension(path)等价于 “.”+Path.GetFileName(path).Split(’.’).Last();
Path.GetFullPath(path)等价于 项目路径+path,也就是绝对路径
Path.GetPathRoot(path)获取盘符,等价于
var array = path.Split(’:’);
var first =array.First();
first = first.Length1?first+":":"";
first = array.Length>1&&arrar[1]
"/"?first+"/":first;
return first;

MD5:

using System.Security.Cryptography;

MD5 md5 = new MD5CryptoServiceProvider();
byte[] bytes = md5.ComputeHash(file);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
sb.Append(bytes[i].ToString(“x2”)) ;
return sb.ToString();

BinaryReader

通过文件流创建,读取二进制数据,本身并不执行流,而是提供流的包装。
Close():关闭BinaryReader对象;

Read():从指定流读取数据,并将指针迁移,指向下一个字符。

ReadDecimal():从指定流读取一个十进制数值,并将在流中的位置向前移动16个字节。

ReadByte():从指定流读取一个字节值,并将在流中的位置向前移动一个字节。

ReadInt16():从指定流读取两个字节带符号整数值,并将在流中的位置向前移动两个字节。

ReadInt32():从指定流读取两个字节带符号整数值,并将在流中的位置向前移动两个字节。

ReadString():从指定流读取字符串,该字符串的前缀为字符串长度,编码为整数,每次7比特。

BinaryWriter

本身并不执行流,而是提供流的包装。用于C#变量从指定流写入二进制数据,该类可以把C#数据类型转换成可以写到底层流的一系列字节

Write方法:将值写入流,有很多重载版本,适用于不同的数据类型。
Flush方法:清除缓存区。
Close方法:关闭数据流。

StreamReader

用于从流中读取字符串,继承自TextReader
bool EndOfStream 获取当前流位置是否在流结尾
void Close() 关闭流
int Peek() 获取流中的下一个字符的整数,如果没有获取到字符, 则返回 -1
int Read() 获取流中的下一个字符的整数
string ReadLine()从当前流中读取一行字符并将数据作为字符串返回
string ReadToEnd() 读取来自流的当前位置到结尾的所有字符

StreamWriter

用来向流中写入数据
bool AutoFlush 属性,获取或设置是否自动刷新缓冲区
Encoding Encoding 只读属性,获取当前流中的编码方式
void Close() 关闭流
void Flush() 刷新缓冲区
void Write(char value) 将字符写入流中
void WriteLine(char value) 将字符换行写入流中
Task WriteAsync(char value) 将字符异步写入流中
Task WriteLineAsync(char value) 将字符异步换行写入流中

MemoryStream

和文件流不同,MemoryStream类表示的是保存在内存中的数据流,由内存流封装的数据可以在内存中直接访问。内存一般用于暂时缓存数据以降低应用程序对临时缓冲区和临时文件的需要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值