C#关于文件剖析

 一、概述

文件,具有永久存储及特定顺序的字节组成的一个有序、具有名称的集合;

,提供一种向后备存储写入字节和从后备存储读取字节的方式; 

读写文件和目录时可使用简单的API,也可使用先进的API提供更多的功能;

使用,可以压缩数据,并且利用内存映射的文件和管道在不同的任务间共享数据;


二、文件系统

System.IO名称空间包含一些简单的API,其中最重要的类用于浏览文件系统和执行操作,如移动、复制和删除文件:

  • FileSystemInfo-这是表示任何文件系统对象(如FileInfo和DirectoryInfo)的基类;
  • FileInfo和File-表示文件系统上的文件;
  • DirectoryInfo和Directory-表示文件系统上的文件夹;
  • Path-包含的静态成员可用于处理路径名;
  • DriveInfo-它的属性和方法提供了指定驱动器的信息;

1、检查驱动器信息

使用DriveInfo的GetDrives()静态方法获取DriveInfo对象数组,再访问每个驱动器信息;

var driveInfos = DriveInfo.GetDrives();
foreach (var driveInfo in driveInfos) Console.WriteLine($"Name:{driveInfo.Name}  totalSize={driveInfo.TotalSize}  freeSpace={driveInfo.TotalFreeSpace}");

2、Path

最常用的方法:

Path.Combine(),可把任意个字符串参数组合成完整的路径返回;

Path.GetFileName(),获取带扩展名的文件名;

Path.GetFileNameWithoutExtension(),获取不带扩展的文件名;

Path.GetExtension(),获取扩展名

Path.GetDirectoryName(),获取文件夹路径名;

Path.GetFullPath(),获取包含文件名及扩展名的全路径名;

string path= Path.Combine(Directory.GetCurrentDirectory(),"test.txt");
var path1=Path.GetFileName(path);
var path2=Path.GetFileNameWithoutExtension(path);
var path3=Path.GetExtension(path);
var path4=Path.GetDirectoryName(path);
var path5=Path.GetFullPath(path);
Console.WriteLine($"文件名:{path1}  无扩展文件名{path2}  扩展:{path3}\n文件夹路径:{path4}\n全路径名:{path5}");

Environment.GetFolderPath(),获取特殊文件夹的路径:

var foldPath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
Console.WriteLine(foldPath);//C:\Users\Administrator\Documents

3、文件和文件夹

 File、Directory定义静态方法,FileInfo、DirectoryInfo提供实例方法,对于大多文件属性只读不可修改,但可设置创建时间和最后一次访问时间;

File常用方法: 

  • File.WriteAllText(),创建并写入文件;
  • File.WriteAllLines(),创建并写入所有行;
  • File.ReadAllBytes(),读取文件所有内容;
  • File.ReadAllLines(),读取文件所有行;
  • File.AppendAllText(),追加的方式写入所有内容;
  • File.AppendAllLines(),追加的方式写入所有行;
  • File.Copy(),复制文件;
  • File.Exists(),判断文件是否存在;
  • File.Create(),创建指定路径文件;
  • File.Open(),打开指定路径上的FileStream(文件流);

Directory常用方法: 

  • Directory.Exists(),判断文件夹是否存在;
  • Directory.GetDirectories(),获取指定目录中所有子目录的名称;
  • Directory.GetDirectoryRoot(),返回指定路径的卷信息、根信息或二者同时返回;
  • Directory.GetCurrentDirectory(),获取当前工作目录;
  • Directory.GetFiles(),获取指定目录的所有文件名称;
  • Directory.GetFileSystemEntries(),获取所有文件和子目录名称;
  • Directory.GetParent(),检索指定路径的父目录;

 FileInfo常用属性(方法大多与File静态类相同)

  • Directory:获取父目录实例;
  • DirectoryName:获取表示目录完整路径的字符串;
  • FullName:获取目录或文件的完整目录;
  • Name:获取文件名;

DirectoryInfo常用属性(方法大多与Directory静态类相同)

  • Extension:获取表示文件扩展名部分的字符串;
  • Parent:获取指定子目录的父目录;
  • Root:获取路径的根部分;


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4G工业路由器智慧楼宇门禁无人值守、实时监控

门禁是我们日常生活中常见的基础设施,就像是现代社会智慧城市中的“门神”,在楼宇管理领域中普遍采用的安防卫士。4G工业路由器的物联网应用则为楼宇门禁管理带来了更加便捷和高效的解决方案。 在传统的楼宇门禁系统中,人员需要手动刷卡、输…

记录 | vscode设置自动换行

右上菜单栏 -> 查看 -> 打开自动换行 或者还有种方式,如下, 左下角小齿轮,点击设置 然后输入 Editor: Word Wrap ,把开关打开为 on

超声波清洗机可以洗哪些东西、功能超全超声波清洗机推荐

超声波清洗机可以清洗的物品是比较多的,首先最经常看见的就是眼镜是交给超声波清洗机清洗的,说到这点,佩戴眼镜的朋友是一定要重视起眼镜清洗的!眼镜长时间不清洗的话镜片以及眼镜支架缝隙中会堆积非常多细菌以及灰尘。所以一定要…

【Vue】element组件不显示问题

使用element组件但不显示 不显示的原因:(未引入element-ui) 首先在控制台输入 npm i element-ui 进行安装 安装完之后,再去main.js配置element-ui组件库 import ElementUI from element-ui import element-ui/lib/theme-chal…

【开源】基于Vue和SpringBoot的高校实验室管理系统

项目编号: S 015 ,文末获取源码。 \color{red}{项目编号:S015,文末获取源码。} 项目编号:S015,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实…

时光相册下载 时光相册停运

可以私信或加底部联系方式,小偿支持 很遗憾听到这个消息。时光相册是一个让用户分享和保存珍贵回忆的平台,但由于各种原因,它可能已经停止运营了。建议你尽快备份你的相册和保存重要照片和视频。同时,可以考虑使用其他相册服务来…

QT 中 多线程(备查)

基础 一个线程处理窗口事件,其他线程进行逻辑运算 在QT中使用多线程,需要额外注意的: 1)默认的线程在Qt中称之为窗口线程,也叫主线程,负责窗口事件处理或者窗口控件数据的更新 2)子线程负责后台…

Python插件 - 动态 简单账表 通过SQL存储过程输出列实现动态展示

第一步 新建一个简单账表加上表头标签 第二步 新建一个过滤框 第三步 修改过滤窗口标识 第四步 注册插件 python代码实现 import clr clr.AddReference("System") clr.AddReference("System.Core") clr.AddReference("Kingdee.BOS") clr.AddRe…

Python 对中文名称逐字按字母表进行排序并输出

使用场景 代码适用于需要对中文名称进行排序并规范化输出的情景,具体为处理一个包含中文姓名的文本文件,按姓名的拼音首字母进行排序,并以规范的格式输出。 排序规则: 将名称按照姓氏首字母A-Z的次序,进行排序&#x…

孩子都能学会的FPGA:第二十二课——用FPGA实现计数时钟的奇数次分频

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…

用pip更新、安装python的包

查看pip的版本:python -m pip --version 例如,查看下pip的版本,在cmd下输入命令python -m pip --version,可以发现当前安装的pip的版本是23.2.1: 查看一个包的详情:python -m pip show 例如&#xff0c…

Python 调用企业微信群机器人发送消息及文件

Python 操作企业微信群机器人。 企业微信群创建机器人 : 安装 requests json : pip install requests pip install json发送消息(markdown) import requests import json# 企业微信机器人发送文字 def send_markdown (message, …

【信息安全】-个人敏感信息、个人信息、个人金融信息

文章目录 个人敏感信息个人敏感信息判定举例 个人信息个人信息判定举例 个人金融信息内容a) 账户信息指账户及账户相关信息b) 鉴别信息c) 金融交易信息d) 个人身份信息e) 财产信息f) 借贷信息g) 其他信息: 出处 个人敏感信息 个人敏感信息判定 个人敏感信息是指一旦泄露、非法…

cmd下查看python命令的用法

在cmd下,可以运行python --help或者py --help来查看python命令的用法。例如:

一起学docker系列之十七Docker Compose 与手动操作的比较与优势分析

目录 1 前言2 不使用 Docker Compose2.1 启动 MySQL 容器2.2 启动 Redis 容器2.3 启动微服务容器 3 使用 Docker Compose4 使用 Docker Compose 的优势5 结语参考地址 1 前言 在当今容器化应用的开发与部署中,容器编排工具的选择对于简化流程、提高效率至关重要。本…

24、pytest通过xfail将测试函数标记为预期失败

官方实例 # content of test_xfail.py import pytest import syspytest.mark.xfail def test_function():print("test_function was invoked.")def valid_config():return Falsedef test_function_02():if not valid_config():pytest.xfail("failing configura…

集体建筑业总产值数据,shp/excel格式,1990-2021年,可直接下载

建筑业总产值指以货币表现的建筑业企业在一定时期内生产的建筑业产品和服务的总和。建筑业总产值包括建筑工程产值、安装工程产值和其他产值三部分内容,不包括境外产值。 建筑业总产值是指以货币表现的建筑业企业在一定时期内生产的建筑业产品和服务的总和。 建筑…

金蝶EAS从哪里查看 即使库存的金额?

【财务会计】——【存货核算】——【报表分析】——【存货收发存汇总表】 从这里能看到即使库存的金额

机器人制作开源方案 | 自主型收集餐盘机器人

作者:蔡佳怡、朱启会、郭晨杰、杨昊天、焦家辉 单位:西安外事学院 指导老师:杜喜昭、张燕 1. 产品说明 1.1 设计目的 对于如学校、工厂这种大型食堂,一般的收餐盘模式为用餐人用餐完毕后,把餐盘拿到最近的收餐盘点&…

【算法】对二分搜索的理解

二分搜索大家都很熟悉&#xff0c;首先我们先来看看基本框架 func binarySearch(nums []int, target int) int {left, right : 0, ...for ... {mid : left (right-left)/2if nums[mid] target {...} else if nums[mid] < target {left ...} else if nums[mid] > targ…