1. File和Directory类
这两个类属于静态类,经常用到的比如File.Exists(string path), Directory.Exists(string path), Directory.GetCurrentDirectory(), Directory.SetCurrentDirectory(string path);
另外还有FileInfo和DirectoryInfo类,属于实例类,用法跟File和Directory差不多,就是要先实例化出来
当单一调用的时候优先用File和Directory类,如果操作很多,则用FileInfo和DirectoryInfo类会更好
2. FileStream类
用于指向文件的流操作,读写文档没StreamReader和StreamWriter方便
当然FileStream类最牛逼的地方在于Seek(long offset, SeekOrigin)这个方法
FileStream(string fileName, FileMode);
FileStream(string fileName, FileMode, FileAccess);
1 public enum FileMode 2 { 3 Append, 4 Create, 5 CreateNew, 6 Open, 7 OpenOrCreate, 8 Truncate 9 }
1 public enum FileAccess 2 { 3 Read, 4 ReadWrite, 5 Write 6 }
3. FileWriter
虽然FileWriter能够直接对文件写入,但是没有更多选项,所以一般要先创建一个FileStream,再创建FileWriter
4.FileReader
与FileWriter一样,但是FileStream的FileMode要改改
Read的时候可能会有文件不存在的BUG,所以要么加上try..catch,要么先判断exists
5. Path类
静态类,主要有GetDirectoryName和GetFileName两个方法
下面这段代码集成了上面的内容
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using MySql.Data; 6 using MySql.Data.Entity; 7 using MySql.Data.MySqlClient; 8 using System.IO; 9 10 namespace test4 11 { 12 class Program 13 { 14 const string FILE = @"C:\Users\Administrator\Desktop\test.txt"; 15 const string DIRECTORY = @"C:\Users\Administrator\Desktop\"; 16 static void Main(string[] args) 17 { 18 if (File.Exists(FILE)) 19 { 20 Console.WriteLine("test.txt exist on desktop"); 21 } 22 if (Directory.Exists(DIRECTORY)) 23 { 24 Console.WriteLine("Desktop directory exists"); 25 } 26 Console.WriteLine(Directory.GetCurrentDirectory()); 27 Console.WriteLine(Path.GetDirectoryName(FILE)); 28 Console.WriteLine(Path.GetFileName(FILE)); 29 //FileStream fst = File.OpenRead(FILE); 30 //StreamWriter sw = new StreamWriter(FILE, true); 31 FileStream fst = new FileStream(FILE, FileMode.Append | FileMode.OpenOrCreate); 32 StreamWriter sw = new StreamWriter(fst); 33 sw.WriteLine("xueyiyi"); 34 sw.Close(); 35 fst.Close(); 36 //try 37 //{ 38 // fst = new FileStream(FILE, FileMode.Open); 39 // StreamReader sr = new StreamReader(fst); 40 // string str; 41 // while ((str = sr.ReadLine()) != null) 42 // { 43 // Console.WriteLine(str); 44 // } 45 // sr.Close(); 46 // fst.Close(); 47 //} 48 //catch (IOException e) 49 //{ 50 // Console.WriteLine("An IO exception has been thrown!"); 51 // Console.WriteLine(e.ToString()); 52 // return; 53 //} 54 if (File.Exists(FILE)) 55 { 56 fst = new FileStream(FILE, FileMode.Open); 57 StreamReader sr = new StreamReader(fst); 58 string str; 59 while ((str = sr.ReadLine()) != null) 60 { 61 Console.WriteLine(str); 62 } 63 sr.Close(); 64 fst.Close(); 65 } 66 else 67 { 68 Console.WriteLine(FILE + " does not exist"); 69 } 70 } 71 } 72 }