Directory文件类,File,FielStream、StreamRead和StreamWriter的使用
(转载)
创建一个新文件 Directory.CreateDirectory(@"C: UsersenleDesktop ew");//路径 删除一个文件 Directory.Delete(@"C: UsersenleDesktop ew", true); 剪切一个文件 Directory.Move(@"C:UsersenleDesktop ew", @"C:UsersenleDesktop ew1"); 读取文件所有文件的全路径 string[] path = Directory.GetFiles(@"C:UsersenleDesktop2", "*.pdf");//"*.pdf" 对读取文件的格式,进行限定 for (int i = 0; i < path.Length; i++) { Console.WriteLine(path[i]); } 文件夹的路径 string[] path = Directory.GetDirectories(@"C:UsersenleDesktop2"); for (int i = 0; i < path.Length; i++) { Console.WriteLine(path[i]); } Console.ReadKey() 创建文件夹 if (Directory .Exists (@"C:UsersenleDesktop ew1")) { for (int i = 0; i < 100; i++) { Directory.CreateDirectory(@"C: UsersenleDesktop ew1" + i); } }
//读取文本文件
// FileMode.OpenOrCreate你针对文件进行一个什么操作 //FileAccess .Read 文件数据参数 //1.创建FileStream对象 FileStream fileRead = new FileStream(@"C:UserswbrmDesktop新建文本文档.txt", FileMode.OpenOrCreate, FileAccess.Read); byte[] buffer = new byte[1024 * 1024 * 5]; int r = fileRead.Read(buffer, 0, buffer.Length); // 0表示从那个字节读取数据 // buffer.Length 读取的大小 //将字节数组中的每一个元素安照知道的编码格式解码成字符串 string s = Encoding.Default.GetString(buffer, 0, r); fileRead.Close(); // //关闭流 fileRead.Dispose(); // //释放流所占用的资源
写入文本文件
//写入的编码格式和读的编码格式必须一样 //将创建的文件流对象的过程在Using当中,会自动的帮助我们释放所占用的空间 using (FileStream fswrite = new FileStream(@"C:UserswbrmDesktop新建文本文档 (2).txt", FileMode.OpenOrCreate, FileAccess.Write)) { string str = "看我有没有把你覆盖掉"; byte[] buffer = Encoding.Default.GetBytes(str);//转换成字节数组 fswrite.Write(buffer, 0, buffer.Length); }
使用文件流实现多媒体文件文件的复制
static void Main(string[] args) { //思路:先将要复制的多媒体文件读取出来然后在再写到你的指定位置 string courece = @"C:UserswbrmDesktopfor循环的练习.avi"; string target = @"C:UserswbrmDesktop新的.avi"; CopyFile(courece, target); } public static void CopyFile(string courece, string target) { //读取流 using (FileStream fsRead = new FileStream(courece, FileMode.OpenOrCreate, FileAccess.Read)) { //写入流 using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)) { byte[] buffer = new byte[1024 * 1024 * 5]; //因为文件可能会比较大,所以我们在读取的时候,应该通过一个循环去读取 while (true) { //返回本次读取实际读取的字节数 int r = fsRead.Read(buffer, 0, buffer.Length); //如果返回一个0,也就意味什么都没有读取到,读取完了 if(r==0) { break; } fsWrite.Write(buffer, 0,r);//最多写入的字节r } } } }
//StreamRead来读取一个文件 using (StreamReader sr = new StreamReader(@"C:UsersenleDesktop新建文本文档.txt", Encoding.Default)) { while (!sr.EndOfStream)//循环的去读文件 { var str=sr.ReadLine(); } }
//StreamWriter写入一个文本文件 using (StreamWriter strw = new StreamWriter(@"C:UserswbrmDesktop新建.txt",true ))//true 表示追加 { strw.Write("哈哈哈"); }