前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# File、FileInfo、Directory、DirectoryInfo

C# File、FileInfo、Directory、DirectoryInfo

作者头像
GoodTime
发布2024-03-05 15:40:04
950
发布2024-03-05 15:40:04
举报

本文主要介绍文件类、文件信息类、目录类、目录信息类的常用属性和方法

1、File(文件类)

代码语言:javascript
复制
// 1、判断文件是否存在
bool isFileExist = File.Exists(@"D:\test.txt");
// 2、创建文件,如存在则将其内容覆盖掉,路径不存在或文件夹不存在或文件夹为只读则抛出异常
File.Create(@"D:\testnew.txt");
if(isFileExist)
{
    // 3、复制文件,无第三个参数则不允许覆盖同名文件,反之则允许;路径不存在或文件夹不存在或进程被占用则抛出异常
    File.Copy(@"D:\testnew.txt", @"D:\test\testnew.txt", true);
    // 4、移动文件,如源文件地址或目标文件地址不存在、目标文件已存在,则抛出异常
    File.Move(@"D:\test1\testnew.txt", @"D:\test2\testnew.txt");
    // 5、删除文件
    File.Delete(@"D:\testnew.txt");
}

2、FileInfo(文件信息类)

代码语言:javascript
复制
// 1、实例化新的FileInfo对象并指定文件路径
FileInfo fileInfo = new FileInfo(@"D:\testfileinfo.txt");
// 2、判断文件是否存在
bool isFileInfoExist = fileInfo.Exists;
// 3、创建新文件
//fileInfo.Create();
if(isFileInfoExist)
{
    // 4、复制现有文件到新文件,无第二个参数则不允许覆盖同名文件,反之则允许;路径不存在或文件夹不存在或进程被占用则抛出异常
    fileInfo.CopyTo(@"D:\testfileinfonew.txt", true);
    // 5、移动文件,如源文件地址或目标文件地址不存在、目标文件已存在,则抛出异常
    fileInfo.MoveTo(@"D:\testfileinfonew1.txt");
    // 6、删除文件
    fileInfo.Delete();
}
#region 获取文件信息
Console.WriteLine("获取文件是否存在:" + fileInfo.Exists); // True
if(fileInfo.Exists)
{
    Console.WriteLine("获取文件名称:" + fileInfo.Name); // testfileinfo.txt
    Console.WriteLine("获取文件的大小:" + fileInfo.Length); // 0
    Console.WriteLine("获取文件的完整目录:" + fileInfo.FullName); // D:\testfileinfo.txt
    Console.WriteLine("获取文件的完整路径:" + fileInfo.DirectoryName); // D:\
    Console.WriteLine("获取文件的属性:" + fileInfo.Attributes); // Archive
    Console.WriteLine("获取文件是否只读:" + fileInfo.IsReadOnly); // False
    Console.WriteLine("获取文件的扩展名:" + fileInfo.Extension); // .txt
    Console.WriteLine("获取文件的创建时间:" + fileInfo.CreationTime); // 2021/12/31 11:45:08
    Console.WriteLine("获取文件的UTC创建时间:" + fileInfo.CreationTimeUtc); // 2021/12/31 3:45:08
    Console.WriteLine("获取文件最后一次被访问的时间:" + fileInfo.LastAccessTime); // 2021/12/31 11:45:08
    Console.WriteLine("获取文件最后一次被访问的UTC时间:" + fileInfo.LastAccessTimeUtc); // 2021/12/31 3:45:08
    Console.WriteLine("获取文件最后一次被写入的时间:" + fileInfo.LastWriteTime); // 2021/12/31 11:45:08
    Console.WriteLine("获取文件最后一次被写入的UTC时间:" + fileInfo.LastWriteTimeUtc); // 2021/12/31 3:45:08
}
#endregion

3、Directory(目录类)

代码语言:javascript
复制
// 1、判断目录是否存在
bool isDirectoryExist = Directory.Exists(@"D:\test");
// 2、创建目录
Directory.CreateDirectory(@"D:\test");
// 3、删除一个空目录,这个目录必须是可写的和空的
Directory.Delete(@"D:\test");
if(isDirectoryExist)
{
    // 4、删除指定的目录,如果指定的话,还包括该目录中的任何子目录和文件;目录或指定路径不存在则抛出异常
    Directory.Delete(@"D:\test", true);
    // 5、将一个文件或一个目录及其内容移动到一个新的位置,如果源目录地址是一个文件,那么目标目录地址也必须是一个文件名;源目录文件或目标目录文件或指定路径不存在、或者同名的文件或目录已经存在则抛出异常
    Directory.Move(@"D:\test\test.txt", @"D:\test1\test1.txt");
    // 6、返回指定目录中的文件名称(包括其路径)
    string[] files = Directory.GetFiles("d:\\");
    // 7、返回指定目录中符合指定搜索模式的文件名称(包括其路径)
    string[] filesWithSpecifySearchMode = Directory.GetFiles("d:\\", "*.txt");
    // 8、返回指定目录下的子目录名称(包括其路径)
    string[] directories = Directory.GetDirectories("d:\\");
    // 9、返回指定目录中符合指定搜索模式的子目录的名称(包括其路径)
    string[] directoriesWithSpecifySearchMode = Directory.GetDirectories("d:\\", "test*");
    // 10、获取应用程序的当前工作目录(绝对路径,并且不以反斜杠(\)结尾)
    string currentDirectory = Directory.GetCurrentDirectory();
    // 11、获取装配体解析器用来探测装配体的基础目录(和上面第10条的区别在于以反斜杠(\)结尾,多个结尾的反斜杠(\))
    string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
}

4、DirectoryInfo(目录信息类)

代码语言:javascript
复制
// 1、实例化新的DirectoryInfo对象并指定文件夹路径
DirectoryInfo directoryInfo = new DirectoryInfo("d:\\test");
// 2、判断目录是否存在
bool isDirectoryInfoExist = directoryInfo.Exists;
// 3、创建目录
directoryInfo.Create();
// 4、删除空目录;非空目录抛出异常
directoryInfo.Delete();
// 5、指定是否删除子目录和文件
directoryInfo.Delete(true);
if(isDirectoryInfoExist)
{
    // 6、移动文件,将一个DirectoryInfo实例及其内容移动到一个新的路径;源目录或指定路径不存在则抛出异常
    directoryInfo.MoveTo("d:\\test1");
    // 7、返回当前目录的子目录;目录或指定路径不存在则抛出异常
    DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();
    // 8、返回当前目录下的文件列表
    FileInfo[] fileInfos = directoryInfo.GetFiles();
    // 9、返回当前目录中符合给定搜索模式的文件列表
    FileInfo[] fileInfosWithSearchMode = directoryInfo.GetFiles("*.txt");
  
  	#region 获取目录或文件信息
    Console.WriteLine("获取目录名称:" + directoryInfo.Name); // test
    Console.WriteLine("获取目录或文件的完整路径:" + directoryInfo.FullName); // d:\test
    Console.WriteLine("获取文件的扩展名:" + directoryInfo.Extension);
    Console.WriteLine("获取目录的根部分:" + directoryInfo.Root); // d:\
    Console.WriteLine("获取或设置当前文件或目录的属性:" + directoryInfo.Attributes); // Directory
    Console.WriteLine("获取指定子目录的父目录:" + directoryInfo.Parent); // d:\
    Console.WriteLine("获取或设置当前文件或目录的创建时间:" + directoryInfo.CreationTime); // 2021/12/31 14:59:31
    Console.WriteLine("获取或设置当前文件或目录的UTC创建时间:" + directoryInfo.CreationTimeUtc); // 2021/12/31 6:59:31
    Console.WriteLine("获取或设置当前文件或目录最后被访问的时间:" + directoryInfo.LastAccessTime); // 2021/12/31 15:03:49
    Console.WriteLine("获取或设置当前文件或目录最后被访问的UTC时间:" + directoryInfo.LastAccessTimeUtc); // 2021/12/31 7:03:49
    Console.WriteLine("获取或设置当前文件或目录最后被写入的时间:" + directoryInfo.LastWriteTime); // 2021/12/31 15:03:49
    Console.WriteLine("获取或设置当前文件或目录最后被写入的UTC时间:" + directoryInfo.LastWriteTimeUtc); // 2021/12/31 7:03:49
    
    #endregion
}

注:本文实例代码下载:C# File、FileInfo、Directory、DirectoryInfo

以上就是.NET Core 日志记录程序和常用日志记录框架的简单使用的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、File(文件类)
  • 2、FileInfo(文件信息类)
  • 3、Directory(目录类)
  • 4、DirectoryInfo(目录信息类)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档