在本文中,我们使用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#教程。