Directoy
Directory:提供一些处理文件夹的操作的属性和方法
DirectoryInfo:设置文件夹属性的类 例如隐藏文件夹,只读文件夹等属性
1.CreateDirectory()创建文件夹
创建在Debug文件下 Image/OK这样的目录
Directory.CreateDirectory(@"Image/OK");
GetCurrentDirectory() 获取当前目录 是一个绝对路径
Console.WriteLine(Directory.GetCurrentDirectory());
Delete() 删除文件夹
参数2位true,可以删除目录以及子目录;参数2位false的话,如果有子目录,不允许删除
Move()
把参数1位置文件或者文件夹 移动到参数2这个位置上
GetDirectories 获取当前目录子目录
GetFiles 获取文件的内容
注:返回文件,不是文件夹的东西,文件夹里面的也不能返回
隐藏文件夹
DirectoryInfo info = new DirectoryInfo(@"./新建文件夹");
Attribute属性
FileAttributes.Hidden 文件的隐藏属性
info.Attributes = FileAttributes.Hidden;
实例
cs
internal class Program
{
static void Main(string[] args)
{
//Directory:提供一些处理文件夹的操作的属性和方法
//DirectoryInfo;设置文件夹属性的类 例如隐藏文件夹,只读文件夹等属性
//1创建文件夹 创建在Debug文件下 Image/OK这样的目录
Directory.CreateDirectory(@"Image/OK");
//2 Exists判断文件路径是否存在
if (!Directory.Exists(@"Config"))//是否存在
{
Console.WriteLine("11111");
Directory.CreateDirectory(@"Config");
}
//3 D:\vis项目\四周四\_课1\bin\Debug
// GetCurrentDirectory() 获取当前目录 是一个绝对路径
Console.WriteLine(Directory.GetCurrentDirectory());
//4 Delete() 删除文件夹的时候 参数2 为true 可以删除目录以及子目录 参数2 为false 如果有子目录 不允许删除
//Directory.Delete(@"Image",false);
//5 Move()把参数1 位置文件中的内容 移动到参数2这个位置上 并且位置文件会消失
if (!Directory.Exists(@"../Test1"))
{
Directory.Move(@"Image1", @"../Test1");
}
//6 GetDirectories()获取当前目录子目录D:\vis项目\四周四\_课1\bin
//string[] paths = Directory.GetDirectories("../Debug");
string[] paths = Directory.GetDirectories("D:\\vis项目\\四周四\\_课1\\bin\\Debug");//不加@ 要有两个斜杠\\
foreach (var item in paths)
{
Console.WriteLine(item+"-----------");
}
//7 GetFiles 获取文件的
string[] pash1 = Directory.GetFiles("D:\\vis项目\\四周四\\_课1\\bin\\Debug");//返回文件,不是文件夹的东西,文件夹里面的也不能返回
foreach (var item in pash1)
{
Console.WriteLine(item +"++++++++++++");
}
//8 隐藏文件夹
DirectoryInfo info = new DirectoryInfo(@"./新建文件夹");
//Attribute属性
//FileAttributes.Hidden 文件的隐藏属性
info.Attributes = FileAttributes.Hidden;
}
}
StreamReader和StreamWriter
StreamReader 读取流,
实现文件读取功能,并且参数可以直接是路径和编码
using()
声明一个块级的作用域,在声明的变量,在{}体之后已经被释放
StreamWriter 写入对象
实例
cs
internal class Program
{
static void Main(string[] args)
{
//BinaryReader br = new BinaryReader(,)//二进制读取原始数据参数是文件流,必须借助fileStream,有时候会出现文档内容出现乱码
//StreamReader 读取流,实现文件读取功能,并且参数可以直接是路径和编码
//using(),声明一个块级的作用域,在声明的变量,在{}体之后已经被释放
using (StreamReader sr = new StreamReader(@"1.txt",Encoding.UTF8))
{
//sr.ReadLine() 读取一行
string lines;
while ((lines=sr.ReadLine())!=null) //一行一行去读,如果读取这一行赋值lines,并且lines==null证明读取完了
{
Console.WriteLine(lines);
}
}
//StreamWriter 写入对象
using (StreamWriter sw = new StreamWriter(@"2.txt"))
{
sw.WriteLine("平安夜买一个苹果");
}
Console.ReadKey();
}
}
BufferedStream
缓存区存储对象,特点读取性能比较快
也需要包装其他流 与 BinaryWirte一样,读取只有这一个类
创建临时存储对象
FileStream fileStream = null;
BufferedStream buff = new BufferedStream();
写入内容 传递一个字节数组
byte[] infor1 = new UTF8Encoding().GetBytes("窗前地上霜,疑是明月光,举头思故乡,低头望明月");
buff.Write(infor1,0,infor1.Length);
创建读取储存对象
buff = new BufferedStream()
实例
cs
internal class Program
{
static void Main(string[] args)
{
//BufferedStream 缓存区存储对象,特点读取性能比较快,
//也需要包装其他流 与 BinaryWirte一样,读取只有这一个类
//1 创建临时存储对象
FileStream fileStream = null;
BufferedStream buff = new BufferedStream(File.Create(@"1.txt"));
//2 写入内容 传递一个字节数组
byte[] infor1 = new UTF8Encoding().GetBytes("窗前地上霜,疑是明月光,举头思故乡,低头望明月");
buff.Write(infor1,0,infor1.Length);//从字节数组的0位置开始写 写 字节数组长度的内容
byte[] infor2 = new UTF8Encoding().GetBytes("Goood Good Study day day up");
buff.Write(infor2, 0, infor2.Length);
byte[] infor3 = new UTF8Encoding().GetBytes("似乎覅外购单很符合");
buff.Write(infor3, 0, infor3.Length);
buff.Flush();
buff.Close();
//3 创建读取储存对象
buff = new BufferedStream(File.OpenRead(@"1.txt"));
byte[] arr = new byte[buff.Length];//定义数组存储读取的数据 长度为缓存区的大小
buff.Read(arr, 0, arr.Length);
while(buff.Read(arr, 0, arr.Length)>0)//如果数据没读完 继续读取
{
Console.WriteLine(Encoding.UTF8.GetString(arr));//把are转成字符串进行展示
}
}
}