C#文件是否存在详解

发布时间:2023-05-16

一、判断文件是否存在

在C#中,判断文件是否存在可以使用File类的Exists方法来实现,该方法返回一个布尔值,指示指定的文件是否存在。下面是判断文件是否存在的示例代码:

if (File.Exists("C:/test.txt"))
{
    Console.WriteLine("文件存在");
}
else
{
    Console.WriteLine("文件不存在");
}

代码解析: 首先使用File类的Exists方法,传入文件的路径作为参数,判断该文件是否存在,如果存在则输出“文件存在”,否则输出“文件不存在”。

二、实现自动创建文件

在使用文件时,有时候可能会遇到文件不存在的情况,此时可以使用File类的Create方法来自动创建一个新的文件。Create方法会返回一个FileStream对象,该对象可以用来写入文件数据。下面是自动创建文件的示例代码:

if (!File.Exists("C:/test.txt"))
{
    FileStream fs = File.Create("C:/test.txt");
    Console.WriteLine("文件已创建");
    fs.Close();
}
else
{
    Console.WriteLine("文件已存在");
}

代码解析: 首先使用File类的Exists方法判断文件是否存在,如果不存在则调用File类的Create方法创建一个新的文件,并返回一个FileStream对象用来写入文件数据,然后输出“文件已创建”,最后关闭FileStream对象。如果文件已经存在,则输出“文件已存在”。

三、删除文件

有时候需要删除一个文件,可以使用File类的Delete方法来实现。下面是删除文件的示例代码:

if (File.Exists("C:/test.txt"))
{
    File.Delete("C:/test.txt");
    Console.WriteLine("文件已删除");
}
else
{
    Console.WriteLine("文件不存在");
}

代码解析: 首先使用File类的Exists方法判断文件是否存在,如果存在则调用File类的Delete方法删除该文件,然后输出“文件已删除”。如果文件不存在,则输出“文件不存在”。

四、获取文件的属性

在C#中,可以使用FileInfo类来获取文件的所有属性,包括文件名、文件路径、创建时间、修改时间、访问时间、文件大小等。下面是获取文件属性的示例代码:

FileInfo file = new FileInfo("C:/test.txt");
Console.WriteLine("文件名:" + file.Name);
Console.WriteLine("文件路径:" + file.FullName);
Console.WriteLine("创建时间:" + file.CreationTime);
Console.WriteLine("修改时间:" + file.LastWriteTime);
Console.WriteLine("访问时间:" + file.LastAccessTime);
Console.WriteLine("文件大小:" + file.Length);

代码解析: 首先创建一个FileInfo对象,传入文件的路径作为参数,然后可以通过该对象的属性来获取文件的各种属性信息,包括文件名、文件路径、创建时间、修改时间、访问时间、文件大小等。

五、使用文件流读写文件

在C#中,可以使用文件流来读写文件的数据。使用FileStream类可以向文件写入数据或从文件读取数据,并且可以指定读写的位置和大小。下面是使用文件流读写文件的示例代码:

FileStream fs = new FileStream("C:/test.txt", FileMode.OpenOrCreate);
byte[] data = Encoding.UTF8.GetBytes("Hello World!");
fs.Write(data, 0, data.Length);
fs.Close();
fs = new FileStream("C:/test.txt", FileMode.Open);
byte[] buffer = new byte[1024];
int length = fs.Read(buffer, 0, buffer.Length);
string str = Encoding.UTF8.GetString(buffer, 0, length);
Console.WriteLine(str);
fs.Close();

代码解析: 首先使用FileStream类创建一个新的文件流对象,指定文件路径和文件打开方式,这里指定了文件打开方式为OpenOrCreate,如果文件不存在则创建一个新文件,否则打开已有文件。然后将要写入文件的数据转换为字节数组,使用FileStream对象的Write方法将数据写入文件。最后关闭FileStream对象。 然后使用FileStream类创建一个新的文件流对象,指定文件路径和文件打开方式为Open,这里的Open方式表示打开已有文件。然后创建一个字节数组作为缓冲区,使用FileStream对象的Read方法将文件的内容读取到缓冲区中,并使用Encoding.UTF8.GetString方法将字节数组转换为字符串输出。最后关闭FileStream对象。