文件系统的文件读写等基本操作
检查驱动器信息使用DriveInfo类可以扫描系统,提供可用的驱动器列表,还可以进一步提供任何驱动器的大量细节。引用名称空间System.IO,使用DriveInfo类的静态方法GetDrives获取驱动器所有信息。如图
能在没有DVD光驱、但有固态硬盘和内存卡的系统上运行这个程序得到上面图的信息。
Path类帮助访问特定于用户的临时文件夹(GetTempPath),创建临时(GetTempFileName)和随机文件名(GetRandomFileName)。注意,方法GetTempFileName()包括文件夹,而GetRandomFileName()只返回文件名,不包括任何文件夹。
Environment.SpecialFolder是个巨大的枚举,提供了音乐,图片,程序文件,应用程序数据,以及其他文件夹的值
创建文件夹和文件创建文件: const string Sample1FileName = "Sample1.txt";
private static void CreateAFile(){
string fileName = Path.Combine(GetDocumentsFolder(), Sample1FileName);
File.WriteAllText(fileName, "Hello, World!");}
File.WriteAllText:创建文件并写入文件字符串,第一个参数文件名,第二个参数写入文件的字符串。
File.Exists:检查文件是否存在
创建文件夹:
if (Directory.Exists(Server.MapPath("~/upimg/hufu")) == false)//如果不存在就创建file文件夹
{Directory.CreateDirectory(Server.MapPath("~/upimg/qwe"));}
Directory.Delete(Server.MapPath("~/upimg/hufu"), true);//删除文件夹以及文件夹中的子目录,文件
Directory.Exists 检查文件夹是否存在
访问和修改文件属性
private static void FileInformation(string fileName){
var file = new FileInfo(fileName); WriteLine($"名字: {file.Name}");
WriteLine($"路径: {file.DirectoryName}");WriteLine($"只读: {file.IsReadOnly}");
WriteLine($"扩展名: {file.Extension}"); WriteLine($"长度: {file.Length}");
WriteLine($"创建时间: {file.CreationTime:F}");WriteLine($"最后操作时间: {file.LastAccessTime:F}");
WriteLine($"文件属性: {file.Attributes}");
}
FileInfo类的这几个属性不能设置:它们只定义了get访问器。不能检索文件名,文件扩展名和文件的长度。可以设置创建时间和最后一次访问时间如图:
File执行读写操作Flie.ReadAllLines:读取文件中的数据,返回一个字符串数组。
Flie.WriteAllLines:往已创建的文件中写入一个字符串集合。
File.AppendAllLines:把字符串追加到已有文件中
枚举文件处理多个文件时,可以使用Directory类。该类定义了GetFiles()方法,返回一个包含目录中所有文件的字符串数组。GetDirectories()方法返回一个包含所有目录的字符串数组。所有这些方法都定义了重载方法,允许传送搜索模式和SearchOption枚举的一个值。SearchOption通过使用AllDirectories或TopDirectoriesOnly值,可以遍历所有子目录,或留在顶级目录中。搜索模式中不允许传递正则表达式:它只传递简单的表达式,其中*表示任意字符,使用?表示单个字符。