C# File、FileInfo、Directory、DirectoryInfo
本文主要介绍文件类、文件信息类、目录类、目录信息类的常用属性和方法
1、File(文件类)
// 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(文件信息类)
// 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(目录类)
// 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(目录信息类)
// 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 日志记录程序和常用日志记录框架的简单使用的介绍,做此记录,如有帮助,欢迎点赞关注收藏!
C# File、FileInfo、Directory、DirectoryInfo的更多相关文章
- C#回顾 - 2.NET的IO:Path、File、FileInfo、Directory、DirectoryInfo、DriveInfo、FileSystemWatcher
1.管理文件系统 一般而言,应用程序都会有保存数据.检索数据的需求. 1.1 使用 path 类来访问文件路径 [path常用的方法]:http://www.cnblogs.com/tangg ...
- C#文件与流(FileStream、StreamWriter 、StreamReader 、File、FileInfo、Directory、directoryInfo、Path、Encoding)
(FileStream.StreamWriter .StreamReader .File.FileInfo.Directory.DirectoryInfo.Path.Encoding) C#文 ...
- System.IO中的File、FileInfo、Directory与DirectoryInfo类(实例讲解)
一.建立的文件夹(对这些文件进行以上四个类的操作): 父目录: 父目录的子目录以及父目录下的文件: 子目录下的文件: 二.效果图 三.代码实现 using System; using System.I ...
- 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类
文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...
- C#基础精华04(文件流,文件操作,File、Directory、Path,Directory)
文件流 FileStream 可读可写 大文件 释放 StreamReader 读取 释放 StreamWriter 写入 释放 using 中释放 File 可读可写 小文件 操作文 ...
- 使用File、Path和Directory进行常见的操作
我们偶尔会用到文件操作,其中File.Path和Directory这三个类是比较常见的,今天写了一个测试demo,也是顺便学习一下,记录一二. BTW,使用这几个类的时候需要引用using Syste ...
- File、Directory、Path
File.Directory.Path https://blog.csdn.net/xiaouncle/article/details/52050577 File.Directory.Path是实际开 ...
- 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类
Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...
- Linux File System Change Monitoring Technology、Notifier Technology
catalog . 为什么要监控文件系统 : hotplug . udev . fanotify(fscking all notification system) . inotify . code e ...
- JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流
一.File 1.1.File概述 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有 ...
随机推荐
- nginx转发到uwsgi的配置
server{ server_name ; listen 80 default_server; add_header Access-Control-Allow-Origin *; add_header ...
- layui的button失效、layui绑定失效
内容呢,就一句话. 因为不会报错,所以这个坑,找了半天......淦 button失效直接提交刷新可能是没加lay-submit 属性. <button class="layui-bt ...
- c++详细学习——引用
1 引用(reference) 引用是一个变量的别名,故引用在申明的时候必须给初始值,从此他们就建立了"不能离婚的婚姻关系",改变引用就会改变被引用的原变量 1 int main( ...
- Java开发学习(四十六)----MyBatisPlus新增语句之id生成策略控制及其简化配置
在前面有一篇博客:Java开发学习(四十一)----MyBatisPlus标准数据层(增删查改分页)开发,我们在新增的时候留了一个问题,就是新增成功后,主键ID是一个很长串的内容. 我们更想要的是按照 ...
- 【书籍知识回顾与总结-2022】Java语言重点知识-多线程编程、流式编程
一.多线程编程 二.流式编程 1.目的 简化集合和数组的操作 注意:每个流只能使用一次 2.获取流的方式 (1)单列集合:stream方法 KeySet()/values()/EntrySet() ( ...
- 【每日一题】【模拟】2021年11月11日--LRU 缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 .实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 L ...
- 想早点下班?试试Aorm库吧,更方便的进行Go数据库操作
使用go进行项目开发,大多数人会使用gorm,但是gorm有一些缺点,我无法接受.于是开发出了aorm,目前能有满足日常开发需求,并且完善了使用文档,希望能够帮助到大家. Aorm Golang操作数 ...
- 定制.NET 6.0的Middleware中间件
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 在本文中,我们将学习中间件,以及如何使用它进一步定制应用程序.我们将快速学习中间件 ...
- TiDB上百T数据拆分实践
背景 提高TiDB可用性,需要把多点已有上百T TiDB集群拆分出2套 挑战 1.现有需要拆分的12套TiDB集群的版本多(4.0.9.5.1.1.5.1.2都有),每个版本拆分方法存在不一样 2.其 ...
- B站地区限制破解方法
B站地区限制破解方法 当我们观看bilibili番剧时,经常会看到"仅限港澳台地区"的字样.那么,有没有一种方法,不需要挂梯子,就可以观看这些被限制的番剧呢? 本教程只适用于bil ...