1)提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 FileStream 对象。
2) 使用 File 类来获取和设置文件特性或 DateTime 与文件的创建、访问和写入相关的信息。 如果要对多个文件执行操作,请参阅 Directory.GetFiles 或 DirectoryInfo.GetFiles 。
枚举 | 枚举说明 |
---|---|
FileAccess | 指定对文件的读取和写入访问权限。 |
FileShare | 指定已在使用的文件所允许的访问级别。 |
FileMode | 指定是保留还是覆盖现有文件的内容,以及创建现有文件的请求是否会引发异常。 |
1)作用:将指定的字符串,追加到文件中,如果文件还不存在,则创建该文件。
2)语法:
public static void AppendAllText (string path, string contents);
public static void AppendAllText (string path, string contents, System.Text.Encoding encoding);
重载 | 重载说明 |
---|---|
AppendAllText(String, String) | 打开一个文件,向其中追加指定的字符串,然后关闭该文件。 如果文件不存在,此方法将创建一个文件,将指定的字符串写入文件,然后关闭该文件。 |
AppendAllText(String, String, Encoding) | 使用指定的编码将指定的字符串追加到文件中,如果文件还不存在则创建该文件。 |
3)使用举例:
string path = @"H:\Tempfile\MyTest.txt";
// 此文本仅一次添加到文件中.
if (!File.Exists(path))
{
// 创建要写入的文件.
string createText = "Hello and Welcome" + Environment.NewLine;
File.WriteAllText(path, createText);
}
// 始终添加此文本,使文件随着时间的推移变得更长
string appendText = "This is extra text: There is no end to learning" + Environment.NewLine;
File.AppendAllText(path, appendText);
// 打开要从中读取的文件
string readText = File.ReadAllText(path);
Console.WriteLine(readText);
4)运行结果:
Hello and Welcome This is extra text: There is no end to learning |
1)作用:创建一个 StreamWriter,它将 UTF-8 编码文本追加到现有文件或新文件(如果指定文件不存在)
2)语法:
public static System.IO.StreamWriter AppendText (string path);
3)使用举例:
// 此文本仅一次添加到文件中
if (!File.Exists(path))
{
// 创建要写入的文件.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Freedom And justice");
sw.WriteLine("GUNDAM 00");
sw.WriteLine("Zero project");
}
}
// 始终添加此文本,使文件随着时间的推移变得更长
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine("This is Extra");
sw.WriteLine("Keep it simple.");
sw.WriteLine("Beautiful Zhuhai");
}
// 打开要从中读取的文件。
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
4)运行结果:
Freedom And justice GUNDAM 00 Zero project This is Extra Keep it simple. Beautiful Zhuhai |
1)作用:在指定路径中,创建或覆盖文件。
2)语法:
public static System.IO.FileStream Create (string path);
public static System.IO.FileStream Create (string path, int bufferSize);
public static System.IO.FileStream Create (string path, int bufferSize, System.IO.FileOptions options);
public static System.IO.FileStream Create (string path, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
重载 | 重载说明 |
---|---|
Create(String) | 在指定路径中创建或覆盖文件。 |
Create(String, Int32) | 在指定路径中创建或覆盖文件,指定缓冲区大小。 |
Create(String, Int32, FileOptions) | 创建或覆盖指定路径中的文件,指定缓冲区大小和一个描述如何创建或覆盖该文件的选项。 |
Create(String, Int32, FileOptions, FileSecurity) | 创建或覆盖指定路径中的文件,指定缓冲区大小、描述如何创建或覆盖该文件的选项,以及用于确定文件的访问控制和审核安全的值。 |
例外情况 | 例外情况说明 |
---|---|
UnauthorizedAccessException | 调用方没有所要求的权限(只读文件 / 隐藏文件)。 |
ArgumentNullException | path 为 null。 |
PathTooLongException | 指定的路径和/或文件名超过了系统定义的最大长度。 |
DirectoryNotFoundException | 指定的路径无效(例如,它位于未映射的驱动器上)。 |
IOException | 创建文件时发生 I/O 错误。 |
NotSupportedException | path 的格式无效。 |
FileOptions | FileOptions 说明 |
---|---|
Asynchronous | 1073741824 指示文件可用于异步读取和写入。 |
DeleteOnClose | 67108864 指示当不再使用某个文件时,自动删除该文件。 |
Encrypted | 16384 指示文件是加密的,只能通过用于加密的同一用户帐户来解密。 |
None | 0 指示在生成 FileStream 对象时,不应使用其他选项。 |
RandomAccess | 268435456 指示随机访问文件。 系统可将此选项用作优化文件缓存的提示。 |
SequentialScan | 134217728 指示按从头到尾的顺序访问文件。 系统可将此选项用作优化文件缓存的提示。 如果应用程序移动用于随机访问的文件指针,可能不发生优化缓存,但仍然保证操作的正确性。 如果指定此标志,可提升某些案例中的性能。 |
WriteThrough | -2147483648 指示系统应通过任何中间缓存、直接写入磁盘。 |
string path = @"H:\Tempfile\MyTest.txt";
try
{
// 创建文件,如果文件存在,则覆盖该文件.
using (FileStream fs = File.Create(path))
{
byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// 向文件中添加一些信息。
fs.Write(info, 0, info.Length);
}
// 打开stream,然后再读一遍
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
运行结果:
This is some text in the file. |
//file类的学习与使用
string path = @"H:\bilibi_Temp\MyTest.txt";
// 创建文件,如果文件存在,则覆盖该文件.
using (FileStream fs = File.Create(path, 1024))
{
byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// 向文件中添加一些信息.
fs.Write(info, 0, info.Length);
}
// 打开Stream,然后读取一遍
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
运行结果:
This is some text in the file. |
string path = @"H:\Tempfile\MyTest.txt";
try
{
// 创建文件,如果文件存在,则覆盖该文件.
using (FileStream fs = File.Create(path))
{
byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// 向文件中添加一些信息。
fs.Write(info, 0, info.Length);
}
// 打开stream,然后再读一遍
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
运行结果:
This is some text in the file. |
1)作用:创建或打开用于写入 UTF-8 编码文本的文件。 如果该文件已存在,将覆盖其内容。
2)语法:
public static System.IO.StreamWriter CreateText (string path);
3)使用举例:
//file类的学习与使用
string path = @"H:\bilibi_Temp\MyTest.txt";
// 创建文件,写入信息.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("This is New file");
sw.WriteLine("Keep it simple.");
sw.WriteLine("Beautiful Zhuhai");
}
// 打开Stream,然后读取一遍
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
1)作用:删除指定的文件。
2)语法:
public static void Delete (string path);
3)使用举例:
//file类的学习与使用
string path = @"H:\bilibi_Temp\MyTest.txt";
File.Delete(path );//删除一个文件
Console.WriteLine("删除成功");
1)作用:确定指定的文件是否存在。
2)语法:
public static bool Exists (string path);
1)作用:打开指定路径上的 FileStream。
2)语法:
public static System.IO.FileStream Open (string path, System.IO.FileMode mode);
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access);
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
重载 | 重载说明 |
---|---|
Open(String, FileMode) | 通过不共享的读/写访问权限打开指定路径上的 FileStream。 |
Open(String, FileMode, FileAccess) | 通过指定的模式和不共享的访问权限打开指定路径上的 FileStream。 |
Open(String, FileMode, FileAccess, FileShare) | 打开指定路径上的 FileStream,具有带读、写或读/写访问的指定模式和指定的共享选项。 |
1)作用:打开现有文件以进行读取。
2)语法:返回FileStream是指定路径上的只读 FileStream。
public static System.IO.FileStream OpenRead (string path);
1)作用:打开现有 UTF-8 编码文本的文件,以进行读取。
2)语法:返回StreamReader是指定路径上的 StreamReader。
public static System.IO.StreamReader OpenText (string path);
1)作用:打开一个现有文件或创建一个新文件以进行写入。
2)语法:返回FileStream是指定路径上具有 FileStream 访问权限的非共享的 Write 对象。
public static System.IO.FileStream OpenWrite (string path);
1)作用:打开一个二进制文件,将文件的内容读入一个字节数组,然后关闭该文件。
2)语法:返回Byte[] 是包含文件内容的字节数组。
public static byte[] ReadAllBytes (string path);
1)作用:打开一个文本文件,将文件的所有行读入一个字符串数组,然后关闭该文件。
2)语法:返回string[]是包含文件内容的字符串数组。
public static string[] ReadAllLines (string path);
public static string[] ReadAllLines (string path, System.Text.Encoding encoding);
重载 | 重载说明 |
---|---|
ReadAllLines(String) | 打开一个文本文件,读取文件的所有行,然后关闭该文件。 |
ReadAllLines(String, Encoding) | 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。 |
1)作用:打开一个文本文件,将文件中的所有文本读取到一个字符串中,然后关闭此文件。
2)语法:返回string 是包含文件内容的字符串。
public static string ReadAllText (string path, System.Text.Encoding encoding);
public static string ReadAllText (string path);
重载 | 重载说明 |
---|---|
ReadAllText(String, Encoding) | 打开一个文件,使用指定的编码读取文件中的所有文本,然后关闭此文件。 |
ReadAllText(String) | 打开一个文本文件,读取文件中的所有文本,然后关闭此文件。 |
1)作用:使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
2)语法:
public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName);
public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);
重载 | 重载说明 |
---|---|
Replace(String, String, String) | 使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。 |
Replace(String, String, String, Boolean) | 用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份,还可以忽略合并错误。 |
1)作用:创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。 如果目标文件已存在,则覆盖该文件。
2)语法:
public static void WriteAllBytes (string path, byte[] bytes);
3)使用举例:
string Strr = "C#高级教程的学习";
string path = @"H:\bilibi_Temp\MyTest.txt";
//将字符串转成字节数组
byte[] buffer_A = Encoding.Default.GetBytes(Strr);
File.WriteAllBytes(path, buffer_A);
Console.WriteLine("写入成功");
1)作用:创建一个新文件,在其中写入一个或多个字符串,然后关闭该文件。
2)语法:
public static void WriteAllLines (string path, string[] contents, System.Text.Encoding encoding);
public static void WriteAllLines (string path, string[] contents);
重载 | 重载说明 |
---|---|
WriteAllLines(String, String[], Encoding) | 创建一个新文件,使用指定编码在其中写入指定的字符串数组,然后关闭该文件。 |
WriteAllLines(String, String[]) | 创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。 |
1)作用:创建一个新文件,向其中写入内容,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
2)语法:
public static void WriteAllText (string path, string contents);
public static void WriteAllText (string path, string contents, System.Text.Encoding encoding);
重载 | 重载说明 |
---|---|
WriteAllText(String, String) | 创建一个新文件,向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。 |
WriteAllText(String, String, Encoding) | 创建一个新文件,使用指定编码向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。 |
string path = @"H:\bilibi_Temp\MyTest.txt";
if (!File.Exists(path))
{
string createText = "Freedom and justice" + Environment.NewLine;
File.WriteAllText(path, createText);
}
string appendText = "Freedom and justice" + Environment.NewLine;
File.AppendAllText(path, appendText);
//使用指定编码方式,打开要从中读取的文件.
string readText = File.ReadAllText(path,Encoding.Default);
Console.WriteLine(readText);
1)作用:将现有文件复制到新文件。
2)语法:
public static void Copy (string sourceFileName, string destFileName);
public static void Copy (string sourceFileName, string destFileName, bool overwrite);
重载 | 重载说明 |
---|---|
Copy(String, String) | 将现有文件复制到新文件。 不允许覆盖同名的文件。 |
Copy(String, String, Boolean) | 将现有文件复制到新文件。 允许覆盖同名的文件。 |
3)使用举例:
string path_A = @"H:\bilibi_Temp\MyTest.txt";
string path_B = @"H:\cilici_Temp\MyTest.txt";
File.Copy (path_A ,path_B);//复制文件
Console.WriteLine("复制成功");