创建一个文件流:【读入流】,使用到的参数:文件的地址、打开文件的方式、文件的访问权限
using (FileStream fs = new FileStream(文件地址, FileMode.Open, FileAccess.Read))
{
//创建一个内存【缓冲区】,用于存储读取到的文件流(字节块)
byte[] buffer = new byte[fs.Length];
//从【流】中读取【字节块】并将该数据写入给定缓冲区中
fs.Read(buffer, 0, buffer.Length);
//使用默认的字符编码集,将字节数组转换成字符串
rtb_info.Text = Encoding.Default.GetString(buffer);
//fs.Close();
//fs.Dispose();
}
创建一个文件流:【输出流】,使用到的参数:文件的地址、打开文件的方式、文件的访问权限
打开文件的方式 表示文件是读取还是写入
using (FileStream fs = new FileStream(文件地址, FileMode.Create, FileAccess.Write))
{
string str = rtb_info.Text;
//使用默认的字符编码集,将字符串转换成字节数组
byte[] buffer = Encoding.Default.GetBytes(str);
// 将字节块写入文件流
fs.Write(buffer, 0, buffer.Length);
}
文件流读取 字符的编码格式
using (StreamReader sr = new StreamReader(地址, Encoding.Default))
{
string str = sr.ReadToEnd();//读取所有内容
rtb_info.Text = str;
}
文件流的写入 表示如果有这个文件就追加文字,如果没有就创建一个文件 编码格式
using (StreamWriter sw = new StreamWriter(地址, true, Encoding.Default))
{
string str = rtb_info.Text;
sw.Write(str);
}
获取当前应用程序的基目录
AppDomain.CurrentDomain.BaseDirectory;
用于合并地址,不用担心等字符
Path.Combine
//获取电脑上的所有驱动器信息
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo dirve in drives)
{
DirectoryInfo dir = dirve.RootDirectory;//获取驱动器的根目录信息
var files = dir.GetFiles();//获取文件夹中所有文件信息
var dirs = dir.GetDirectories();//获取文件夹中所有子目录信息
}
//根据指定的目录路径,实例化一个目录信息
DirectoryInfo dirInfo = new DirectoryInfo(dirPath);
var files = dirInfo.GetFiles();//获取目录下所有的文件信息
var dirs = dirInfo.GetDirectories();//获取目录下多所有的子目录信息
//删除文件
File.Delete(文件地址);
//复制文件 第三个参数的 True 代表 可以覆盖
File.Copy(原地址,复制到什么地址, true);
移动文件,先删除原先的文件
//移动文件 原地址 现地址
File.Move(filePath, destFileName);