要判断指定文件是否为只读文件,有多种方式可以实现。下面介绍两种方法:
方法一:使用File类的GetAttributes方法及FileAttributes枚举值判断文件属性
File类提供了一些静态方法及属性,可实现对文件的基本操作功能。其中GetAttributes方法可获取文件的属性,包括只读、隐藏、系统、临时等属性。通过判断文件的属性是否包含FileAttributes.ReadOnly枚举值,即可判断文件是否是只读的。
using System.IO;
string filePath = "D:/example.txt";
FileAttributes fileAttributes = File.GetAttributes(filePath);
if ((fileAttributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Console.WriteLine("{0} is read-only.", filePath);
}
else
{
Console.WriteLine("{0} is not read-only.", filePath);
}
在以上代码中,首先通过GetAttributes方法获取指定文件的属性,取得一个FileAttributes枚举值。然后通过“与”运算(“&”),判断获取到的枚举值是否包含FileAttributes.ReadOnly属性值,如果包含,则表示文件是只读的。
可以使用以下测试代码验证:
File.Create("D:/example.txt").Close(); // 创建文件
File.SetAttributes("D:/example.txt", FileAttributes.ReadOnly); // 设置文件只读
string filePath = "D:/example.txt";
FileAttributes fileAttributes = File.GetAttributes(filePath);
if ((fileAttributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Console.WriteLine("{0} is read-only.", filePath);
}
else
{
Console.WriteLine("{0} is not read-only.", filePath);
}
File.SetAttributes(filePath, FileAttributes.Normal); // 取消只读
File.Delete(filePath); // 删除文件
通过以上代码,可以看到输出结果为“D:/example.txt is read-only.”,证明判断文件只读属性的代码已经生效。
方法二:使用FileInfo类的IsReadOnly属性判断文件是否只读
FileInfo类封装了一个文件的信息和操作,提供了许多有用的属性及方法。其中IsReadOnly属性可获取文件的只读属性,此属性为bool类型,如果为true则表示文件只读,否则为false表示文件可读写。
using System.IO;
string filePath = "D:/example.txt";
FileInfo fileInfo = new FileInfo(filePath);
if (fileInfo.IsReadOnly)
{
Console.WriteLine("{0} is read-only.", filePath);
}
else
{
Console.WriteLine("{0} is not read-only.", filePath);
}
在上述代码中,使用new FileInfo(filePath)创建FileInfo实例,然后通过IsReadOnly属性取得文件的只读属性,判断即可。
可以使用以下测试代码验证:
File.Create("D:/example.txt").Close(); // 创建文件
FileInfo fileInfo = new FileInfo("D:/example.txt");
fileInfo.IsReadOnly = true; // 设置文件只读
if (fileInfo.IsReadOnly)
{
Console.WriteLine("{0} is read-only.", filePath);
}
else
{
Console.WriteLine("{0} is not read-only.", filePath);
}
fileInfo.IsReadOnly = false; // 取消只读
File.Delete(filePath); // 删除文件
通过以上代码,可以看到输出结果为“D:/example.txt is read-only.”,证明判断文件只读属性的代码已经生效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#判断指定文件是否是只读的方法 - Python技术站