C#文件操作(一)

一、前言

        学习心得:C# 入门经典第8版书中的第20章《文件》

二、操作文件的相关类

        在C#应用程序中Syste.IO名称空间包含用于在文件中读写数据的类。在此我列举一下File、Directory、Path、FileInfo、DirectoryInfo、FileSystemInfo、FileSystemWatcher。其中在System.IO.Compression名称空间中还包含读写压缩文件。DeflateStream、GZipStream。这两个在后续文章中我会慢慢提到解释,但由于大量方法在网上都可以查找得到,本节我仅仅只介绍部分方法。

三、File和Directory类

1 File 类

        File通常用于操作文件的静态类(Copy、Create、Delete、Open、Move) 都是些常见的静态方法这里不做介绍,大家如不了解使用可以查一查。

2 Directory类

        Directory通常用于操作文件夹的静态类,其中DIcrectory中有很多方法如: CreateDirectory 创建目录、Delete 删除目录、GetDirectories 获得指定目录下的目录名、GetFiles  获得指定目录下的文件名、GetFileSystemEntries 获取指定目录下的目录名和文件名、Move 移动文件、GetCurrentDirectory 获取应用程序的工作目录 GetCreationTime 获取目录创建的事件等很多方法都很简单使用。

举个例子:

Directory.CreateDirectory(@"C\目录");
Directory.GetDirectories(@"C\目录");
Directory.GetFiles(@"C\目录");
Directory.GetFileSystemEntries(@"C\目录");
Directory.GetCurrentDirectory();
Directory.GetCreationTime(@"\目录");
Directory.Delete(@"C\目录");
//返回目录名的IEnumerable<string>集合
IEnumerable<string> s = Directory.EnumerateDirectories(@"C:\Users\Administrator\Desktop\练习\bin\Debug");
//返回文件名的IEnumerable<string>集合
IEnumerable<string> s2 = Directory.EnumerateFiles(@"C:\Users\Administrator\Desktop\练习\bin\Debug");
//返回文件和目录名的IEnumerable<string>集合
IEnumerable<string> s3 = Directory.EnumerateFileSystemEntries(@"C:\Users\Administrator\Desktop\练习\bin\Debug");

四、FileInfo类 

        FileInfo类和File有很多相似的方法,但它不是静态类,它需要一个字符串参数,作为方法操作的文件路径。其次FileInfo对象是表示一个磁盘位置或者网络位置。

举个例子:

 //使用File类需要每次指定文件路径
 File.Open(@"C\",FileMode.Open,FileAccess.Read);

 //使用Fileinfo指定一次后方法都是对当前路径进行操作
 FileInfo fileInfo = new FileInfo(@"C\");
 if (fileInfo.Exists)
 {
     //读取
    fileInfo.OpenRead();
 }

问:什么时候使用File什么时候使用FileInfo?


 答:在多次对一个文件操作时使用FileInfo ,因为它不需要重复指明操作路径。但如果只对文件操作一次的情况下推荐还是使用File静态类因为它不需要创建对象,单一调用要快一点,不必实例化新对象在调用方法 。

提示:路径中@“C\” 前面的@ 是代表取消当前字符串的转义符效果,不加@则需要将\改为\\才能代表\的含义。

五、DirectoryInfo 类

        DirectoryInfo 与Directory类,类似,在使用选择上也和上述File和FileInfo的使用场景类似。其中它有两个特别的属性。

 DirectoryInfo directoryInfo = new DirectoryInfo(@"C\菜板");
 //获取一个包含当前目录的目录
var s= directoryInfo.Parent;
 //获取包含目录的根目录
var str= directoryInfo.Root;

六、相对路径与绝对路径

        在文章当中我们使用的路径都是绝对路径。绝对路径是它直接指向了磁盘中的文件所在位置但我们也可以使用相对路径来指定我们文件所在的位置。使用“文件名称.后缀名”

举个例子:

//在 项目文件\bin\Debug\中创建了文件夹
var str =  Directory.CreateDirectory("A文件夹");

示例解释:

        "A文件夹"代表的文件就是指 项目文件\bin\Debug 路径下创建一个“A文件夹”为名称的文件夹。相对位置都是指向工作目录, 工作目录就是=>项目文件\bin\Debug。

效果:

 

提示:获取相对位置,上移一个目录路径使用..代表当前目录的上一个目录。

举个例子(在bin目录中创建文件夹):

 var str =  Directory.CreateDirectory(@"..\A文件夹");

 本章还有大部分内容,我们下一篇见!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/259663.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决Android studio 创建虚拟机时提示a system image must be selected continue问题

在使用android studio的时候&#xff0c;很多新手在创建虚拟机的时候回出现 a system image must be selected continue错误。 里明显是缺少了systemImage,解决方法如下 打开SDK MANAGER,然后把右下角的show package details勾上,把对应的system image下载下来即可

mysql:查看服务端为了处理连接而创建的线程数量

使用命令show global status like Threads_created;可以查看服务端为了处理连接而创建的线程数量。 例如&#xff1a;

5G+云渲染技术:将如何快速推进XR和元宇宙?

XR&#xff08;扩展现实&#xff09;领域正在以惊人的速度增长。目前&#xff0c;到 2024 年&#xff0c;一些专家表示这个行业的价值将达到 3000 亿美元。 这个行业发展如此迅速的部分原因是 XR 将在商业环境中的带来巨大利益。近年来&#xff0c;很多企业遇到了将增强现实和…

【lesson18】MySQL内置函数(1)日期函数和字符串函数

文章目录 日期函数函数使用具体使用案例建表插入数据建表插入数据 字符串函数函数使用具体使用案例建表插入数据测试 日期函数 函数使用 获得年月日&#xff1a; 获得时分秒&#xff1a; 获得时间戳&#xff1a; 获得现在的时间&#xff1a; 在日期的基础上加日期&#xf…

Unity中URP下的半透明效果实现

文章目录 前言一、实现半透明的步骤1、修改Blend模式&#xff0c;使之透明2、打开深度写入&#xff0c;防止透明对象穿模3、在Tags中&#xff0c;修改渲染类型和渲染队列为半透明 Transparent 二、对透明效果实现从下到上的透明渐变1、 我们在 Varying 中&#xff0c;定义一个v…

vue3表格导入导出.xlsx

在这次使用时恰好整出来了&#xff0c;希望大家也能学习到&#xff0c;特此分享出来 使用前确保安装以下模块&#xff0c;最好全局配置element-plus ### 展示一下 ### ###导出选项 ### ###导入de数据 ### 安装的模块 npm install js-table2excel // 安装js-table2excel n…

翻译: LLMs离通用人工智能AGI有多远 20个小时学会开车 Artificial General Intelligence

AGI&#xff0c;即人工通用智能&#xff0c;是一个令人兴奋的概念。我认为围绕它的一些混淆源于“通用”这个词的使用。正如您所知&#xff0c;人工智能是一种通用技术&#xff0c;意味着它对许多不同的事情都有用。大型语言模型的崛起导致了像ChatGPT这样的单一模型可以用于许…

Java发起SOAP请求代码参考

目录 Java发起SOAP请求代码参考 代码1.组装参数2.加密参数3.发起连接4.解析返回数据 参考 文章所属专区 超链接 代码 1.组装参数 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans&qu…

AUTOSAR CanTSyn模块配置与代码实现(二)

AUTOSAR CanTSyn模块配置与代码实现 1、FUP message处理 CanTSyn_process_FUP_message 先比较和SYNC报文的Sequence是否相等&#xff0c;如果不相等则不接受该报文。 然后调用CanTSyn_unpack_store_fup处理fup报文。 获取接收到FUP时的本地时间&#xff0c;并与接收到的SYNC…

虚拟机无法进入系统问题

概述 客户在华为云平台上创建了两台虚拟机并部署aarch64 V10 OS&#xff0c;2021-10-28其中一台虚拟机业务出现异常&#xff0c;运维重启虚拟机后系统进不去&#xff0c;左上角光标闪烁&#xff0c;接着重启另一台虚拟机同样起不来&#xff0c;现象一致。 分析 通过分析现场…

天眼销使用指南

刚做销售的你&#xff0c;打电话是不是总是被客户拒决&#xff1f;要不打过去就是空号错号、找不着人&#xff1f;更甚者连客户电话都不知道&#xff1f; 如何快~速找到目标客户准确的联系方式呢&#xff1f;赶紧把这份使用指南请收好&#xff0c;客户不用愁。 1、进入【天眼…

0. Java简介与安装配置

0. Java简介与安装配置 文章目录 0. Java简介与安装配置1.1 Java简介1.2 Java特性1.2 Linux环境安装1.3 Windows环境安装1.3.1 下载JDK安装包1.3.2 安装JDK3. 配置JAVA环境4. 检验安装是否成功 1.3 开发工具参考文献 1.1 Java简介 Java是一门面向对象]编程语言&#xff0c;不仅…

部分常用算法笔记

一、简单易考 1、冒泡排序 https://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896 for i:0;i<length;i { for j:0;j<length-i-1;j { if array[j] > array[j1] { array[j1],array[j] array[j],array[j1] } } } 2、求数组最大最小值。 1&#xff09;O(…

Hudi 表类型和查询类型

数据湖hudi的表类型定义了数据在DFS上如何组织布局&#xff0c;同时实现一些timeline等操作&#xff08;表类型定定义数据是如何写入的&#xff09;&#xff1b;查询类型则是定义如何读取DFS上的数据。 Table typequery typeCopy-On-Write 快照查询&#xff1b; 增量查询&…

若依系列框架RuoYi(104集),RuoYi-Vue(121集)、RuoYi-Cloud(134集)最新完整视频.txt

若依系列框架RuoYi(104集),RuoYi-Vue&#xff08;121集&#xff09;、RuoYi-Cloud&#xff08;134集&#xff09;最新完整视频.txt

C/C++ BM1反转链表

文章目录 前言题目1.解决方案一1.1 思路阐述1.2 源码 2. 解决方案二2.1 思路阐述2.2 源码 总结 前言 这题是牛客网的BM1&#xff0c;主要涉及到链表的操作以及栈数据结构的使用。 题目 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的…

Arduino开发实例-液体流量测量

液体流量测量 文章目录 液体流量测量1、流量传感器介绍2、硬件准备及接线3、代码实现在本文中,将介绍如何流量传感器进行测量液体流量。 流量传感器用于测量液体流速。 市场上有不同类型的流量传感器,在本文中,我们将使用霍尔效应流量传感器。 这些类型的流量传感器是非侵入…

不是私域难做,是我们做私域的方法该换了!

最近&#xff0c;有一些声音在不断变多&#xff1a;私域越来越难做了&#xff01;许多过去做私域的成功经验&#xff0c;今天好像都不奏效了。 在业绩层面上&#xff0c;很多企业一开始还能通过大量拉新、信息轰炸这种“博概率”的方式获得销量&#xff0c;但时间一长&#xf…

Tomcat远程调试

windows环境 写一个 startup-debug.bat&#xff0c;指定tomcat的根目录&#xff0c;端口自己定义 rem *******设置Tomcat目录*******-- set CATALINE_HOMED:\asd\A8-2\tomcat d: rem 8787为可用端口,为远程调试监听端口-- cd %CATALINE_HOME%/bin set JPDA_ADDRESS8787 set J…

DriveWorks Solo捕获参数(三)

捕获参数 - 木门和矩形窗 木质门 下一个组件是木门本身。除了尺寸之外&#xff0c;门还具有需要控制的功能。 让我们首先捕获尺寸。 通过单击“捕获资源管理器”中的标题来激活“捕获的模型”部分。 双击任务窗格树中的模型木门以在 SOLIDWORKS 中将其打开。捕获以下尺寸。…