使用File的静态方法,命名空间需包含using System.IO;
//文件读写File类
////案例一:读取文件内容
//byte[] buffer = File.ReadAllBytes(@"D:\C#ExampleFile\ex.txt");
//string s = Encoding.Default.GetString(buffer);
//Console.WriteLine(s);
//Console.ReadKey();
////案例二:写入文件内容 文件没有则创建,有则覆盖 //最好进行一次判断 跟用户交互一下再覆盖
//string str = "我是最棒的。";
//byte[] buffer = Encoding.Default.GetBytes(str);
//File.WriteAllBytes(@"D:\C#ExampleFile\ex1.txt", buffer);
//Console.Write("写入成功!");
//Console.ReadLine();
////案例三 按行读取 返回字符串数组
// string[] contents=File.ReadAllLines(@"D:\C#ExampleFile\ex.txt", Encoding.Default);
// foreach (string item in contents)
// {
// Console.WriteLine(item);
// }
// Console.ReadKey();
////案例四 全部读,返回字符串
// string str = File.ReadAllText(@"D:\C#ExampleFile\ex.txt", Encoding.Default);
// Console.WriteLine(str);
// Console.ReadKey();
// string filepath = "d:\\c#examplefile\\ex1.txt";
//File.Delete(@"d:\C#examplefile\ex1.txt");//案例五 file删除文件
//File.Delete(@filepath); //案例五 file删除文件
////===============实例化FileInfo进行操作=========================
//string filepath = "d:\\c#examplefile\\ex111.txt";
//FileInfo myfile = new FileInfo(filepath);
//string destpath = "d:\\111\\123.txt";
//bool IsExists = myfile.Exists; //检测是否存在
//myfile.CopyTo(@destpath); //对文件进行复制操作,destpath需包含地址及移动后的文件名;filepath必须需存在
//myfile.MoveTo(@"D:\\111\\2.txt"); //对源文件进行移动操作,Path包含移动后的文件名; filepath必须需存在
// myfile.Delete(); //filepath不存在时无异常
如何选择用哪一个类? File or FileInfo
Directory/File只包含静态方法,不能被实例化,只需要提供合适的文件系统对象路径就可以使用,使用效率较高
当只对文件或文件夹执行一次操作,使用这些就很有效。
DirectoryInfo/FileInfo 如果使用一个对象执行多个操作,使用这些类就很高效。
因为它们在构造时就读取了文件系统对象的身份验证和其他信息,无论调用了多少方法,都不需要再次读取这些信息。
===============
在C#中,使用文件和目录路径时要十分谨慎。C#将反斜杠”\”字符视作转义符,因此当路径表示为字符串时,要使用两个反斜杠表示,例如:
“C:\Windows\System32\notepad.exe”
另外,C#允许在字符串前添加”@”标志,以提示编译器不要把”\”字符视作转义符,而视作普通字符,例如:
@”C:\Windows\System32\notepad.exe”
C# 中的File和FileInfo类用于文件操作。File类包含静态方法,适用于一次性操作,效率高;FileInfo类在执行多次操作时更高效,因为它在构造时获取文件信息。路径表示时,需注意反斜杠的转义,可以使用双反斜杠或添加@符号避免转义。

2172

被折叠的 条评论
为什么被折叠?



