文件夹
Directory类
静态类,无需实例化,引用 System.IO 命名空间即可使用
常用方法
//创建文件夹
Directory.CreateDirectory(@"D:\DownLoad");
//判断文件夹是否存在
Directory.Exists(@"D:\DownLoad");
//删除文件夹 空文件夹
Directory.Delete(@"D:\DownLoad");
//删除文件夹 所有文件
Directory.Delete(@"D:\DownLoad", true);
//获取指定目录中的子目录的名称 参数:路径,查询条件,查询类型
string[] directories = Directory.GetDirectories(@"D:\DownLoad", "张*", SearchOption.AllDirectories);
//获取指定目录中的文件名及路径
string[] strings = Directory.GetFiles(@"D:\DownLoad");
//获取目录的创建时间
DateTime createTime = Directory.GetCreationTime(@"D:\DownLoad");
//获取应用程序的当前工作目录
string path = Directory.GetCurrentDirectory();
//获取指定路径的根目录
Directory.GetDirectoryRoot(@"D:\DownLoad");
//将指定文件或文件夹移动到其他位置 可重命名文件或文件夹
Directory.Move(@"D:\DownLoad\Image",@"D:\DownLoad1\Image");
Directory.Move(@"D:\DownLoad\Image\Body.png",@"D:\DownLoad1\Image\Head.png");
DirectoryInfo类
使用需要实例化,引用 System.IO 命名空间
常用方法
//创建文件夹
DirectoryInfo directoryInfo = Directory.CreateDirectory(@"D:\DownLoad");
DirectoryInfo direcotryInfo = new DirectoryInfo(@"D:\DownLoad");
directoryInfo.Create();
//删除文件夹 删除空文件夹
directoryInfo.Delete();
//删除文件夹 所有文件
directoryInfo.Delete(true);
//获取当前目录的文件列表
FileInfo[] fileInfos = directoryInfo.GetFiles();
//获取当前目录的子目录
DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();
//获取文件的所有权限
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl(AccessControlSections.All);
//移动文件 移动位置不能有重名文件
directoryInfo.MoveTo(@"E:\DownLoad");
文件
File类
静态类,无需实例化,引用 System.IO 命名空间即可使用
常用方法
//判断文件是否存在
bool isExists = File.Exists(@"D:\DownLoad\aaa.txt");
//创建文件 同名则会覆盖
//仅创建
File.Create(@"D:\DownLoad\aaa.txt");
//同时进行写入操作
using (FileStream fs = File.Create(@"D:\DownLoad\aaa.txt"))
{
byte[] info = new UTF8Encoding(true).GetBytes("ABC");
fs.Write(info, 0, info.Length);
}
//复制文件
File.Copy(@"D:\DownLoad\aaa.txt", @"D:\NewDownLoad\aaa.txt");
//删除文件
File.Delete(@"D:\DownLoad\aaa.txt");
//移动文件
File.Move(@"D:\DownLoad\aaa.txt", @"D:\NewDownLoad\aaa.txt");
//打开文件
File.Open(@"D:\DownLoad\aaa.txt", FileMode.Open, FileAccess.Write, FileShare.None);
//简单操作
using (FileStream fs= File.Open(@"D:\DownLoad\aaa.txt", FileMode.Open))
{
byte[] bs = new byte[fs.Length];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(bs, 0, bs.Length) > 0)
{
Console.WriteLine(temp.GetString(bs));
}
}
FileInfo类
使用需要实例化,引用 System.IO 命名空间
常用方法
//创建文件
FileInfo fileInfo = new FileInfo(@"D:\DownLoad\aaa.txt");
//仅创建
fileInfo.Create();
//进行写入操作
using (FileStream fileStream = fileInfo.Create())
{
byte[] bytes = new UTF8Encoding(true).GetBytes("abcdefg");
fileStream.Write(bytes, 0, bytes.Length);
}
//删除文件
FileInfo fileInfo = new FileInfo(@"D:\DownLoad\aaa.txt");
fileInfo.Delete();
//移动文件
FileInfo fileInfo = new FileInfo(@"D:\DownLoad\aaa.txt");
fileInfo.MoveTo(@"D:\NewDownLoad\aaa.txt");
//读取文件
FileInfo fileInfo = new FileInfo(@"D:\DownLoad\aaa.txt");
using (FileStream fs = fileInfo.Open(FileMode.Open))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b, 0, b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
}
//复制文件
FileInfo fileInfo = new FileInfo(@"D:\DownLoad\aaa.txt");
fileInfo.CopyTo(@"D:\NewDownLoad\aaa.txt");
Path类
静态类,无需实例化,引用 System.IO 命名空间即可使用
常用方法
//将多个字符串或字符串数组合并成一个路径
//多字符串
string fileName = "aaa.txt";
string path = @"D:\DownLoad";
System.IO.Path.Combine(path, fileName);
//字符串数组
string[] filePath = new string[] { @"D:\", "DownLoad", "aaa.txt" }
System.IO.Path.Combine(filePath);
//是否存在
bool isExists = System.IO.Path.Exists(@"D:\DownLoad\aaa.txt");
//返回路径的目录信息,如果路径表示根目录或为null,则为空。如果路径不包含目录信息,则返回为空
string? directroyName = System.IO.Path.GetDirectoryName(@"D:\DownLoad\aaa.txt");
//返回文件扩展名 .txt 不存在则返回空
string? extension = System.IO.Path.GetExtension(@"D:\DownLoad\aaa.txt");
//返回文件名 aaa.txt ,不存在则返回空
string? fileName = System.IO.Path.GetFileName(@"D:\DownLoad\aaa.txt");
//获取文件 不含扩展 aaa
string? fileName = System.IO.Path.GetFileNameWithoutExtension(@"D:\DownLoad\aaa.txt");
//返回绝对路径
string fileName = "aaa.txt";
string path1 = @"DownLoad";
string path2 = @"\DownLoad";
string fullPath;
fullPath = System.IO.Path.GetFullPath(fileName);
fullPath = System.IO.Path.GetFullPath(path1);
fullPath = System.IO.Path.GetFullPath(path2);
//获取根目录
string? pathRoot = System.IO.Path.GetPathRoot(@"D:\DownLoad\aaa.txt");