C# 文件处理

文件夹

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");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值