在本文中,我们使用FileInfo在C#中处理文件。
文件信息
FileInfo提供用于创建、复制、删除、移动和打开文件的属性和实例方法。它有助于创建FileStream对象。
.NET中有一个类似的类File。FileInfo是表示文件的文件实例,File是用于处理任何文件的实用程序类。
sky borrow war ocean cup cloud water read book look
在几个例子中,我们使用这个文本文件。
C#FileInfo简单例子
我们有一个使用FileInfo的简单示例。
var fi = new FileInfo("words.txt");
Console.WriteLine(fi.Name);
Console.WriteLine(fi.FullName);
bool ro = fi.IsReadOnly;
if (ro)
{
Console.WriteLine("readonly file");
}
else
{
Console.WriteLine("not a readonly file");
}
我们创建一个FileInfo对象,将一个文本文件传递给它的构造函数。然后我们打印它的三个属性。
Console.WriteLine(fi.Name); Console.WriteLine(fi.FullName);
我们打印它的名字和全名。
bool ro = fi.IsReadOnly;
if (ro)
{
Console.WriteLine("readonly file");
}
else
{
Console.WriteLine("not a readonly file");
}
我们判断文件是否是只读的。
$ dotnet run words.txt /home/jano/Documents/prog/csharp/fileinfo/First/words.txt not a readonly file
C#FileInfo创建文本文件
CreateText方法创建一个StreamWriter来写入一个新的文本文件。
var fi = new FileInfo("colours.txt");
using StreamWriter sw = fi.CreateText();
sw.WriteLine("red");
sw.WriteLine("yellow");
sw.WriteLine("white");
sw.WriteLine("brown");
我们创建一个新的文本文件colours.txt。我们在文件中写入四行。
using StreamWriter sw = fi.CreateText();
StreamWriter类实现了IDisposable接口;因此,我们使用using语句在完成后关闭资源。
C#FileInfo读取文件
OpenText创建一个使用UTF8编码的StreamReader,它可以从现有的文本文件中读取数据。
var fi = new FileInfo("words.txt");
using StreamReader sr = fi.OpenText();
string? s = string.Empty;
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
在示例中,我们逐行读取文件。
$ dotnet run sky borrow war ocean cup cloud water read book look
C#FileInfo删除文件
Delete方法删除一个文件。
var fi = new FileInfo("/etc/hostname");
try
{
fi.Delete();
} catch (UnauthorizedAccessException e)
{
Console.WriteLine("failed to delete file");
Console.WriteLine(e.Message);
}
在示例中,我们尝试删除一个系统文件。由于我们没有足够的权限,因此抛出异常。
$ dotnet run failed to delete file Access to the path '/etc/hostname' is denied.
C#FileInfo复制文件
CopyTo将现有文件复制到新文件,不允许覆盖现有文件。
var fi = new FileInfo("words.txt");
fi.CopyTo("words2.txt");
该示例创建了words.txt文件的副本。
C#文件信息目录
Directory获取父目录的实例。
var fi = new FileInfo("/etc/hostname");
var di = fi.Directory;
Console.WriteLine(di?.FullName);
Console.WriteLine(di?.LastAccessTime);
Console.WriteLine(di?.Root);
该示例打印文件的父目录全名、上次访问时间和根目录。
$ dotnet run /etc 6/30/2022 11:46:07 AM /
在本文中,我们使用了FileInfo来处理文件。
列出所有C#教程。
