当前位置: 首页 > news >正文

C#使用FileInfo和DirectoryInfo类来执行文件和文件夹操作

System.IO.FileInfoSystem.IO.DirectoryInfo 是C#中用于操作文件和文件夹的类,它们提供了许多有用的方法和属性来管理文件和文件夹。

System.IO.FileInfo

FileInfo 类用于操作单个文件的信息和内容。以下是一些常用的方法和属性:

  • Exists:检查文件是否存在。
  • FullName:获取文件的完整路径。
  • Name:获取文件的名称(包括扩展名)。
  • Length:获取文件的大小(以字节为单位)。
  • CreationTimeLastAccessTimeLastWriteTime:分别获取文件的创建时间、最后访问时间和最后写入时间。
  • CopyTo:将文件复制到指定的目标路径。
  • MoveTo:将文件移动到指定的目标路径。
  • Delete:删除文件。

System.IO.DirectoryInfo

DirectoryInfo 类用于操作文件夹的信息和内容。以下是一些常用的方法和属性:

  • Exists:检查文件夹是否存在。
  • FullName:获取文件夹的完整路径。
  • Name:获取文件夹的名称。
  • CreationTimeLastAccessTimeLastWriteTime:分别获取文件夹的创建时间、最后访问时间和最后写入时间。
  • GetFiles:获取文件夹中的文件列表。
  • GetDirectories:获取文件夹中的子文件夹列表。
  • CreateSubdirectory:在当前文件夹下创建子文件夹。
  • MoveTo:将文件夹移动到指定的目标路径。
  • Delete:删除文件夹。

这些类提供了方便的方法来处理文件和文件夹的操作,可以根据具体的需求来选择使用 FileInfoDirectoryInfo。使用这些类可以更加灵活地进行文件和文件夹的管理和操作。

 使用 FileInfo

using System;
using System.IO;class Program
{static void Main(){string filePath = @"C:\example\sample.txt";// 创建 FileInfo 对象FileInfo fileInfo = new FileInfo(filePath);// 检查文件是否存在if (fileInfo.Exists){Console.WriteLine($"File name: {fileInfo.Name}");Console.WriteLine($"File size: {fileInfo.Length} bytes");Console.WriteLine($"Creation time: {fileInfo.CreationTime}");Console.WriteLine($"Last access time: {fileInfo.LastAccessTime}");Console.WriteLine($"Last write time: {fileInfo.LastWriteTime}");// 复制文件到新路径string newFilePath = @"C:\newfolder\sample.txt";fileInfo.CopyTo(newFilePath, true); // 第二个参数表示是否覆盖目标文件// 移动文件到新路径string movedFilePath = @"D:\movedfolder\sample.txt";fileInfo.MoveTo(movedFilePath);// 删除文件fileInfo.Delete();}else{Console.WriteLine("File does not exist.");}}
}

使用 DirectoryInfo: 

using System;
using System.IO;class Program
{static void Main(){string folderPath = @"C:\example\folder";// 创建 DirectoryInfo 对象DirectoryInfo directoryInfo = new DirectoryInfo(folderPath);// 检查文件夹是否存在if (directoryInfo.Exists){Console.WriteLine($"Folder name: {directoryInfo.Name}");Console.WriteLine($"Creation time: {directoryInfo.CreationTime}");Console.WriteLine($"Last access time: {directoryInfo.LastAccessTime}");Console.WriteLine($"Last write time: {directoryInfo.LastWriteTime}");// 获取文件夹中的文件列表FileInfo[] files = directoryInfo.GetFiles();foreach (FileInfo file in files){Console.WriteLine($"File: {file.Name}, Size: {file.Length} bytes");}// 获取文件夹中的子文件夹列表DirectoryInfo[] subdirectories = directoryInfo.GetDirectories();foreach (DirectoryInfo subdirectory in subdirectories){Console.WriteLine($"Subfolder: {subdirectory.Name}");}// 创建子文件夹string newSubfolderPath = Path.Combine(folderPath, "newsubfolder");DirectoryInfo newSubdirectory = directoryInfo.CreateSubdirectory("newsubfolder");// 移动文件夹到新路径string movedFolderPath = @"D:\movedfolder";directoryInfo.MoveTo(movedFolderPath);// 删除文件夹directoryInfo.Delete(true); // 第一个参数表示是否删除包括子文件和子文件夹}else{Console.WriteLine("Folder does not exist.");}}
}

http://www.lryc.cn/news/126436.html

相关文章:

  • 每日一学——TCP/IP参考模型
  • LAXCUS分布式操作系统:技术创新引领高性能计算与人工智能新时代
  • 两只小企鹅(Python实现)
  • Linux | 使用wget命令调用服务接口
  • POJ Prime Path 埃氏筛法+广度优先搜索
  • React React Native
  • 分布式定时任务系列5:XXL-job中blockingQueue的应用
  • QT网络编程之TCP
  • 《游戏编程模式》学习笔记(四) 观察者模式 Observer Pattern
  • 前端一键升级 package.json里面的依赖包管理
  • 当速度很重要时:使用 Hazelcast 和 Redpanda 进行实时流处理
  • 筛法求欧拉函数
  • consul限制注册的ip
  • 用AI攻克“智能文字识别创新赛题”,这场大学生竞赛掀起了什么风潮?
  • EJB基本概念和使用
  • 神经网络基础-神经网络补充概念-09-m个样本的梯度下降
  • 分布式 - 消息队列Kafka:Kafka消费者分区再均衡(Rebalance)
  • BIO、NIO和AIO
  • 理解 Go 中的切片:append 操作的深入分析(篇1)
  • 由于找不到mfc140u.dll,无法继续执行代码怎么修复?
  • 【0.1】lubancat鲁班猫4刷入debian网络ping 域名不通问题
  • KafkaStream:基本使用
  • 【数据结构】二叉树
  • 基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)
  • jenkins自动化构建保姆级教程(持续更新中)
  • HTTPS 的加密流程
  • Jmeter 参数化的几种方法
  • 剑指Offer45.把数组排成最小的数 C++
  • 【java毕业设计】基于SSM+MySql的人才公寓管理系统设计与实现(程序源码)--人才公寓管理系统
  • golang操作excel的高性能库——excelize/v2