CSharp中的文件操作
在C#中,可以使用System.IO命名空间中的类来进行Windows文件操作。这些类提供了丰富的方法来处理文件和目录,包括创建、复制、删除、移动文件和目录,以及读取和写入文件等功能。
常用文件操作方法
文件读写
读取文件:
string content = File.ReadAllText(filePath);
- 参数:
string path(要读取的文件的路径) - 返回值:
string(文件的全部文本内容) - 说明:读取指定路径的文件全部内容为字符串。
- 参数:
写入文件:
File.WriteAllText(filePath, content);
- 参数:
string path, string contents(文件路径和要写入的内容) - 返回值:无
- 说明:将指定的字符串写入文件,如果文件不存在则创建。
- 参数:
逐行读取:
foreach (string line in File.ReadLines(filePath))
{
// 处理每一行
}
- 参数:
string path - 返回值:
string[](文件的所有行) - 说明:按行读取文件的全部内容,并以字符串数组的形式返回。
- 参数:
逐行写入:
string[] lines = { "line1", "line2" };
File.WriteAllLines(filePath, lines);
参数:
string path, IEnumerable<string> contents(文件路径和包含要写入的所有行的字符串集合)返回值:无
说明:将字符串集合中的每个元素按行写入文件。
ReadAllBytes
- 参数:
string path - 返回值:
byte[](文件的所有字节) - 说明:读取文件的全部内容为字节数组。
- 参数:
WriteAllBytes
- 参数:
string path, byte[] bytes - 返回值:无
- 说明:将字节数组写入文件。
- 参数:
文件操作
复制文件:
File.Copy(sourceFilePath, destFilePath);
- 参数:
string sourceFileName, string destFileName, bool overwrite(源文件名,目标文件名,是否覆盖) - 返回值:无
- 说明:复制文件到新的位置,可选择是否覆盖现有文件。
- 参数:
删除文件:
File.Delete(filePath);
- 参数:
string path - 返回值:无
- 说明:删除指定路径的文件。
- 参数:
移动文件:
File.Move(sourceFilePath, destFilePath);
- 参数:
string sourceFileName, string destFileName(源文件名,目标文件名) - 返回值:无
- 说明:移动文件到新的位置。
- 参数:
判断文件是否存在:
bool exists = File.Exists(filePath);
- 参数:
string path - 返回值:
bool(文件是否存在) - 说明:检查指定路径的文件是否存在。
- 参数:
目录操作
创建目录:
Directory.CreateDirectory(directoryPath);
- 参数:
string path - 返回值:
DirectoryInfo(表示新创建的目录的对象) - 说明:创建目录。
- 参数:
删除目录:
Directory.Delete(directoryPath, recursive: true);
- 参数:
string path, bool recursive(目录路径,是否递归删除子目录和文件) - 返回值:无
- 说明:删除目录,可选择是否同时删除子目录和文件。
- 参数:
获取目录下的文件:
string[] files = Directory.GetFiles(directoryPath);
- 参数:
string path - 返回值:
string[](目录中文件的路径数组) - 说明:获取指定目录下的所有文件路径。
- 参数:
获取目录下的子目录:
string[] subDirectories = Directory.GetDirectories(directoryPath);
- 参数:
string path - 返回值:
string[](目录中子目录的路径数组) - 说明:获取指定目录下的所有子目录路径。
- 参数:
路径操作
合并路径:
string fullPath = Path.Combine(directoryPath, fileName);
- 参数:
params string[] paths - 返回值:
string(组合后的路径) - 说明:组合多个字符串为一个路径。
- 参数:
获取文件名:
string fileName = Path.GetFileName(filePath);
- 参数:
string path - 返回值:
string(文件名) - 说明:从路径字符串中获取文件名。
- 参数:
获取目录名
string DirectoryName = Path.GetDirectoryName(filePath);
- 参数:
string path - 返回值:
string(目录名) - 说明:从路径字符串中获取目录名。
- 参数:
使用FileStream
对于需要更细粒度控制的文件操作(如大文件处理或特殊的读写模式),可以使用FileStream类。
读取文件:
using (FileStream stream = File.OpenRead(filePath))
{
// 读取操作
}
写入文件:
using (FileStream stream = File.OpenWrite(filePath))
{
// 写入操作
}
注意事项
在进行文件操作时,需要注意异常处理,如使用try-catch块来捕捉可能出现的错误,例如文件不存在或访问被拒绝等。
对于大文件或频繁的文件操作,考虑使用流(Stream)来提高性能。
在处理文件路径时,注意操作系统的路径格式。
通过这些方法,可以轻松地在C#中进行各种文件和目录的操作。
在使用这些方法时,最好将它们放在try-catch块中,以处理可能发生的异常,如文件不存在、路径错误或访问权限不足等。
CSharp中的文件操作的更多相关文章
- 第32课 Qt中的文件操作
1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...
- 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作
原文:重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 [源码下载 ...
- 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Application Data 中的媒体
[源码下载] 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Ap ...
- 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理
[源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 ...
- Java中的文件操作(一)RandomAccessFile
今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...
- Win 32平台SDK中的文件操作
读取文件: HANDLE hFile ; // 声明文件操作内核对象句柄 hFile = CreateFile(, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ...
- ASP.NET中的文件操作(文件信息,新建,移动,复制,重命名,上传,遍历)(亲测详细)
做了几天的文件操作,现在来总结一下,错误之处,还望指点!以文件为例,如果对文件夹操作,基本上将File换为Directory即可(例:FileInfo file = new FileInfo(Path ...
- 关于Python中的文件操作(转)
总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...
- 说说Python 中的文件操作 和 目录操作
我们知道,文件名.目录名和链接名都是用一个字符串作为其标识符的,但是给我们一个标识符,我们该如何确定它所指的到底是常规文件文件名.目录名还是链接名呢?这时,我们可以使用os.path模块提供的isfi ...
- C#中的文件操作
在.NET Framework 中进行的所有输入和输出工作都要用到流(stream) 有两种类型的流: 输出流:当向某些外部目标写入数据时,就要用到输出流(将数据写入到文件中). 输入流:用于将数据读 ...
随机推荐
- Golang 入门 : 转换
Go中数学运算和比较运算要求包含的值具有相同的类型.如果不是的话,则在尝试运行代码时会报错. 为变量分配新值也是如此.如果所赋值的类型与变量的声明类型不匹配,也会报错. 解决方法是使用转换,它允许你将 ...
- CDH6.3.2下安装部署Qualitis数据质量分析的计算服务Linkis1.3.2
快速搭建Qualitis手册 一.基础软件安装 Gradle (4.6) MySQL (5.5+) JDK (1.8.0_141) Linkis(1.0.0+), 必装Spark引擎.如何安装Link ...
- Linux 实现OpenSSL 服务器端客户端通信
1.OpenSSL安装 详情参考博文:https://blog.csdn.net/qq_39521181/article/details/96457673 2.SSL 在学习openssl编程之前,先 ...
- Oracle 强行断开用户连接的方法
1.查找目标用户的当前进程 select sid,serial# from v$session where username='test'; 2.使用上述语句会返回一个进程列表,每行有两个数字,用数字 ...
- docker网络冲突解决(修改docker_gwbridge网段)
1·问题 一次生产搭建服务的时候,出现客户端服务器到docker服务断开不通的情况,在docker服务器上抓包可以抓到客户端服务器的包,但是docker服务器不做任何响应 于是ip route 查看本 ...
- AITCA联盟:渠道商的革命号角,产业变革的领航者!
AITCA联盟:渠道商的革命号角,产业变革的领航者! 在AI技术风起云涌的今天,一场无声的革命正在悄然酝酿.在这场革命中,渠道商们不再是被动接受的附庸,而是即将成为改写产业规则.掌握自己命运的主宰者! ...
- 【Python】导出docx格式Word文档中的文本、图片和附件等
[Python]导出docx格式Word文档中的文本.图片和附件等 零.需求 为批量批改学生在机房提交的实验报告,我需要对所有的实验文档内容进行处理.需要批量提取Word文档中的图片和附件以便进一步检 ...
- 视图必须派生自 WebViewPage 或 WebViewPage
转
以 ASP.NET MVC 5 为例. 遇见类似问题的蛮多的...
- 使用Python可视化磁场
引言 随着科学技术的发展,物理学中的很多概念变得越来越复杂,但我们可以利用 Python 这一强大的工具,将一些抽象的物理现象变得更加直观易懂.今天,我们将以"磁场可视化"为主题, ...
- 详细介绍FutureTask类
一.详细介绍FutureTask类 FutureTask 未来将要执行的任务对象,继承 Runnable.Future 接口,用于包装 Callable 对象,实现任务的提交 public stati ...