在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中的文件操作的更多相关文章

  1. 第32课 Qt中的文件操作

    1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...

  2. 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作

    原文:重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 [源码下载 ...

  3. 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Application Data 中的媒体

    [源码下载] 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Ap ...

  4. 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理

    [源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 ...

  5. Java中的文件操作(一)RandomAccessFile

    今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...

  6. Win 32平台SDK中的文件操作

    读取文件: HANDLE hFile ; // 声明文件操作内核对象句柄 hFile = CreateFile(, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ...

  7. ASP.NET中的文件操作(文件信息,新建,移动,复制,重命名,上传,遍历)(亲测详细)

    做了几天的文件操作,现在来总结一下,错误之处,还望指点!以文件为例,如果对文件夹操作,基本上将File换为Directory即可(例:FileInfo file = new FileInfo(Path ...

  8. 关于Python中的文件操作(转)

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  9. 说说Python 中的文件操作 和 目录操作

    我们知道,文件名.目录名和链接名都是用一个字符串作为其标识符的,但是给我们一个标识符,我们该如何确定它所指的到底是常规文件文件名.目录名还是链接名呢?这时,我们可以使用os.path模块提供的isfi ...

  10. C#中的文件操作

    在.NET Framework 中进行的所有输入和输出工作都要用到流(stream) 有两种类型的流: 输出流:当向某些外部目标写入数据时,就要用到输出流(将数据写入到文件中). 输入流:用于将数据读 ...

随机推荐

  1. Vue3状态管理终极指南:Pinia保姆级教程

    一.为什么选择Pinia?(Vuex对比分析) 1.1 核心优势解析 Composition API优先 :天然支持Vue3新特性,代码组织更灵活 TypeScript友好 :内置类型推导,无需额外类 ...

  2. 【VMware VCF】解决 VCF 环境中组件用户密码过期问题。

    由于长时间没有启动 VCF 环境,现在在启动 SDDC Manager 组件后,UI 一直处于如下图所示的"初始化"状态.当时第一直觉就认为肯定是 VCF 环境组件的用户密码过期了 ...

  3. 使用unity构建射击小游戏

    博客地址:https://www.cnblogs.com/zylyehuo/ 成果图 参考例程 www.manning.com/hocking 问题汇总 1.renderer.material 方法过 ...

  4. BandiZip无广告版安装

    BandiZip无广告版安装 Bandizip 是一款压缩软件,它支持Zip.7-Zip 和 RAR 以及其它压缩格式.它拥有非常快速的压缩和解压缩的算法,从大学用到现在,但是现在最新的版本在每次压缩 ...

  5. 【教程】Windows10系统激活

    Windows10系统激活 一.找一个激活码 到百度搜索,筛选发表日期在最近一个月或者一周之内的 二.以管理员身份打开cmd 按Win+R键,输入cmd打开命令行窗口 按Ctrl+Shift+Esc键 ...

  6. .NET & JSON

    C# & JSON DataContractJsonSerializer // JsonHelper.cs using System; using System.Collections.Gen ...

  7. Pycharm两种快速激活方式(附最新激活码和插件)

    小张的Pycharm最近弹出提示框 Your license has expired提示过期....纳尼!!!! 是不是看到这个也很头疼,.于是我就在想有没有一种方式可以让他永久免费的,于是小张从网上 ...

  8. 一文搞懂Dockerfile

    Dockerfile官网 https://docs.docker.com/reference/dockerfile/ 什么是Dockerfile? Dockerfile 是一个文本文件,其内包含了一条 ...

  9. 🎀CSS基础-长度单位

    简介 在CSS中,长度单位分为绝对长度单位和相对长度单位.这些单位用于定义元素的尺寸.边距.填充.字体大小等属性值 绝对长度单位 绝对长度单位指的是那些无论环境如何变化,其值都是固定不变的单位.它们通 ...

  10. H5 ios端微信浏览器下-底部工具固定方法

    在外层配置css position: fixed; width: 100%; top: 0px; bottom: 0px; overflow: auto; 结束