File静态类
1.File 类
File 类是一个静态类,提供了用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 System.IO.FileStream 对象。
所有 File 方法都需要文件路径作为参数,这些方法直接操作文件,无需实例化对象。适用于简单的文件操作,特别是针对一次性操作的场景。

2. 方法
3.常用方法
1. bool Exists (string? path)检查文件是否存在。
string path = @"c:\temp\MyTest.txt";
if (File.Exists(path))
{
// 文件存在
}
2. string ReadAllText (string path)打开一个文本文件,读取文件中的所有文本,然后关闭此文件。
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
//Open the file to read from
string readText = File.ReadAllText(path);
Console.WriteLine(readText);
}
}
3. void WriteAllText (string path, string? contents)创建一个新文件,向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则会将其截断并覆盖。
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
if (!File.Exists(path))
{
// Create a file to write to.
string createText = "Hello and Welcome" + Environment.NewLine;
File.WriteAllText(path, createText);
}
//Open the file to read from
string readText = File.ReadAllText(path);
Console.WriteLine(readText);
}
}
4. void AppendAllText (string path, string? contents)打开一个文件,将指定的字符串追加到该文件末尾,然后关闭该文件。如果文件不存在,此方法将创建一个文件,将指定的字符串写入该文件,然后关闭该文件。
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
string appendText = "This is extra text" + Environment.NewLine;
File.AppendAllText(path, appendText);
// Open the file to read from.
string readText = File.ReadAllText(path);
Console.WriteLine(readText);
}
}
5. void Delete (string path)删除指定的文件。
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = @"C:\example";
string searchPattern = "*.txt";
try
{
string[] files = Directory.GetFiles(directoryPath, searchPattern);
if (files.Length > 0)
{
foreach (string file in files)
{
File.Delete(file);
Console.WriteLine($"文件 {file} 删除成功!");
}
}
else
{
Console.WriteLine("没有找到匹配的文件。");
}
}
catch (DirectoryNotFoundException)
{
Console.WriteLine("指定的目录不存在。");
}
catch (IOException e)
{
Console.WriteLine("发生IO异常: " + e.Message);
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("无权访问文件: " + e.Message);
}
catch (Exception e)
{
Console.WriteLine("发生异常: " + e.Message);
}
}
}
6. void Copy (string sourceFileName, string destFileName)将现有文件复制到新文件。 不允许覆盖同名的文件。
using System;
using System.IO;
class Program
{
static void Main()
{
string sourceFile = @"C:\source.txt";
string destFile = @"C:\destination.txt";
try
{
// 将源文件复制到目标文件
File.Copy(sourceFile, destFile);
Console.WriteLine("文件复制成功!");
}
catch (IOException e)
{
Console.WriteLine($"发生IO异常: {e.Message}");
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine($"无权访问文件: {e.Message}");
}
catch (Exception e)
{
Console.WriteLine($"发生异常: {e.Message}");
}
}
}
7. void Move (string sourceFileName, string destFileName)将指定文件移到新位置,提供要指定新文件名的选项。
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
string path2 = @"c:\temp2\MyTest.txt";
try
{
if (!File.Exists(path))
{
// 此语句确保文件被创建,但不保留句柄。
using (FileStream fs = File.Create(path)) {}
}
// 确保目标文件不存在。
if (File.Exists(path2))
File.Delete(path2);
// 移动文件。
File.Move(path, path2);
Console.WriteLine("{0} was moved to {1}。", path, path2);
// 检查原文件是否仍存在。
if (File.Exists(path))
{
Console.WriteLine("he original file still exists, which is unexpected.");
}
else
{
Console.WriteLine("The original file no longer exists, which is expected.");
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
8. DateTime GetCreationTime (string path)返回指定文件或目录的创建日期和时间
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = @"C:\temp\example.txt";
try
{
// 检查文件是否存在
if (File.Exists(filePath))
{
// 获取文件的创建时间
DateTime creationTime = File.GetCreationTime(filePath);
Console.WriteLine($"文件 {filePath} 的创建时间是:{creationTime}");
}
else
{
Console.WriteLine($"文件 {filePath} 不存在");
}
}
catch (Exception e)
{
Console.WriteLine($"发生异常: {e.Message}");
}
}
}
9. DateTime GetLastWriteTime (string path)返回上次写入指定文件或目录的日期和时间
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
string path = @"c:\Temp\MyTest.txt";
if (!File.Exists(path))
{
File.Create(path);
}
else
{
// 执行会影响写入时间的操作。
File.SetLastWriteTime(path, new DateTime(1985, 4, 3));
}
// 获取一个已知目录的最后写入时间。
DateTime dt = File.GetLastWriteTime(path);
Console.WriteLine("该文件的最后写入时间为 {0}。", dt);
// 更新最后写入时间。
File.SetLastWriteTime(path, DateTime.Now);
dt = File.GetLastWriteTime(path);
Console.WriteLine("该文件的最后写入时间为 {0}。", dt);
}
catch (Exception e)
{
Console.WriteLine("进程失败: {0}", e.ToString());
}
}
}

浙公网安备 33010602011771号