摘要
C#中的FileInfo类是一个用于处理和操作文件的类。它是System.IO命名空间中的一个重要类,提供了创建,删除和读取文件的属性和方法。这些方法和属性允许我们在程序中访问和操作文件,以便在我们的应用程序中使用文件进行各种任务。
FileInfo类有许多有用的方法和属性,例如FileName属性用于获取文件的完整路径和名称,Directory属性用于获取文件所在的目录。另外,还有许多其他的属性和方法,如CreationTime、LastAccessTime、LastWriteTime等等,它们允许我们获取文件的创建,访问和修改时间等信息。
除了读取和写入文件,FileInfo类还提供了一些有用的方法,如CopyTo、Delete和Exists等等。这些方法允许我们复制文件到其他位置,删除文件,以及检查文件是否存在。
最重要的是,FileInfo类使用StreamWriter类将文件写入文件。这允许我们将文本,二进制数据和其他类型的数据写入文件。我们可以使用StreamWriter类将数据写入文件的指定位置,也可以在不写入文件的情况下预写入数据。
FileInfo类是一个非常有用的类,可以帮助我们在C#程序中轻松处理和操作文件。它提供了许多方法和属性,使我们能够轻松读取,写入和修改文件,并在需要时执行其他任务。如果你想在C#中处理文件,FileInfo类是一个必不可少的工具。
正文
构造函数
下表列出FileInfo
类的构造函数。
构造函数 | 描述 |
---|
FileInfo(String) | 它用于初始化FileInfo 类的新实例,该实例充当文件路径的包装器。 |
属性
下表列出FileInfo
类的属性。
属性 | 描述 |
---|
Attributes | 它用于获取或设置当前文件或目录的属性。 |
CreationTime | 它用于获取或设置当前文件或目录的创建时间。 |
Directory | 它用于获取父目录的实例。 |
DirectoryName | 它用于获取表示目录完整路径的字符串。 |
Exists | 它用于获取一个值,指示文件是否存在。 |
FullName | 它用于获取目录或文件的完整路径。 |
IsReadOnly | 它用于获取或设置确定当前文件是否为只读的值。 |
LastAccessTime | 它用于获取或设置从上一次访问当前文件或目录的时间。 |
Length | 它用于获取当前文件的字节数。 |
Name | 它用于获取文件的名称。 |
方法
方法 | 描述 |
---|
AppendText() | 它用于创建一个StreamWriter 类对象,将文本附加到FileInfo 的此实例所表示的文件中。 |
CopyTo(String) | 它用于将现有文件复制到新文件。 |
Create() | 它用于创建文件。 |
CreateText() | 它用于创建一个写入新文本文件的StreamWriter 类对象。 |
Decrypt() | 它用于解密由使用加密方法当前帐户加密的文件。 |
Delete() | 它用于永久删除文件。 |
Encrypt() | 它用于加密文件,以便只有用于加密文件的帐户才能对其进行解密。 |
GetAccessControl() | 它用于获取封装访问控制列表(ACL)条目的FileSecurity 对象。 |
MoveTo(String) | 它用于将特定文件移动到新的指定位置。 |
Open(FileMode) | 它用于以指定的模式来打开文件。 |
OpenRead() | 它用于创建只读FileStream 。 |
OpenText() | 它用于创建从现有文本文件使用UTF8编码读取的StreamReader 类。 |
OpenWrite() | 它用于创建只写FileStream 对象。 |
Refresh() | 它用于刷新对象的状态。 |
Replace(String,String) | 用于使用当前FileInfo 对象描述的文件替换指定文件的内容。 |
ToString() | 它用于将路径作为字符串返回。 |
创建文件
private void btnCreateFile_Click(object sender, EventArgs e)
{
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
file.Create();
}
写入文件
private void btnWirteFile_Click(object sender, EventArgs e)
{
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
StreamWriter writer = file.CreateText();
writer.WriteLine("NBA新赛季常规赛继续进行,洛杉矶湖人队(1胜5负)终于收获赛季首胜。" +
"勒布朗得到26分、6个篮板和8次助攻,戴维斯得到23分和15个篮板," +
"威少得到18分、8个篮板和8次助攻,湖人队依靠第三节高潮一举反超并确立优势," +
"他们在主场以121-110战胜丹佛掘金队(4胜3负)。湖人队结束5连败,掘金队结束2连胜。");
writer.Close();
}
用SteamWriter一定记得Close
读取文本内容
private void btnReadFile_Click(object sender, EventArgs e)
{
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
string data = "";
using (StreamReader reader = file.OpenText())
{
data = reader.ReadToEnd();
}
MessageBox.Show(data);
}
文件属性
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
var isExist = file.Exists;//文件是否存在
var dir = file.DirectoryName;//文件所在目录
var ext = file.Extension;//文件扩展名
var dt = file.CreationTime;//文件创建时间
var isCompressed= file.Attributes.HasFlag(FileAttributes.Compressed);//文件是否压缩
文件操作,拷贝,删除,移动
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
string c1 = Path.Combine(Path.GetFullPath("./"), "b.txt");
string d1 = Path.Combine(Path.GetFullPath("../"), "c.txt");
FileInfo file = new FileInfo(f1);
file.CopyTo(c1, true);
//拷贝file.MoveTo(d1);
//剪切file.Delete();
注:其中File静态态与FileInfo功能基本一致,其中文件读写更为简单。
写文件
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
File.WriteAllText(f1, "自从今夏重返尤文之后," +
"博格巴就因膝盖伤势而休养至今。博格巴原本预计能在世界杯前复出,但昨天却又遭遇了重创。");
读取文件
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
string content=File.ReadAllText(f1);
MessageBox.Show(content);
该文章在 2024/2/7 23:18:58 编辑过