| 后一修订版 | 前一修订版 |
| csharp:文件操作 [2025/11/27 12:58] – 创建 张叶安 | csharp:文件操作 [2025/11/27 12:59] (当前版本) – [文本文件的读取与写入] 张叶安 |
|---|
| |
| C# 中的文件操作主要依赖于 `System.IO` 命名空间。主要涉及以下几个核心类: | C# 中的文件操作主要依赖于 `System.IO` 命名空间。主要涉及以下几个核心类: |
| * **File / FileInfo**: 用于文件的创建、复制、删除、移动和打开。 | * **File / FileInfo**: 用于文件的创建、复制、删除、移动和打开。 |
| * **Directory / DirectoryInfo**: 用于目录(文件夹)的创建、移动和枚举。 | * **Directory / DirectoryInfo**: 用于目录(文件夹)的创建、移动和枚举。 |
| * **FileStream / StreamWriter / StreamReader**: 用于读写文件中的数据流。 | * **FileStream / StreamWriter / StreamReader**: 用于读写文件中的数据流。 |
| |
| ===== 文件操作 FileInfo ===== | ===== 文件操作 FileInfo ===== |
| |
| **区别**: | **区别**: |
| * `File` 类:提供**静态**方法(Static),适合对文件进行一次性操作。 | * `File` 类:提供**静态**方法(Static),适合对文件进行一次性操作。 |
| * `FileInfo` 类:提供**实例**方法,需要 `new` 对象,适合对同一个文件进行多次操作(无需重复进行安全检查)。 | * `FileInfo` 类:提供**实例**方法,需要 `new` 对象,适合对同一个文件进行多次操作(无需重复进行安全检查)。 |
| |
| ==== 判断文件是否存在 ==== | ==== 判断文件是否存在 ==== |
| |
| **常用属性:** | **常用属性:** |
| * `FullName`: 目录完整路径。 | * `FullName`: 目录完整路径。 |
| * `Name`: 目录名称。 | * `Name`: 目录名称。 |
| * `CreationTime`: 创建时间。 | * `CreationTime`: 创建时间。 |
| * `Parent`: 父目录信息。 | * `Parent`: 父目录信息。 |
| * `Exists`: 判断目录是否存在。 | * `Exists`: 判断目录是否存在。 |
| |
| **常用方法:** | **常用方法:** |
| * `GetDirectories()`: 获取子目录。 | * `GetDirectories()`: 获取子目录。 |
| * `GetFiles()`: 获取目录下的文件。 | * `GetFiles()`: 获取目录下的文件。 |
| * `CreateSubdirectory(string path)`: 创建子目录。 | * `CreateSubdirectory(string path)`: 创建子目录。 |
| * `Delete(bool recursive)`: 删除目录(recursive=true 表示递归删除子内容)。 | * `Delete(bool recursive)`: 删除目录(recursive=true 表示递归删除子内容)。 |
| * `MoveTo(string destDirName)`: 移动目录。 | * `MoveTo(string destDirName)`: 移动目录。 |
| |
| ==== 判断文件夹是否存在 ==== | ==== 判断文件夹是否存在 ==== |
| |
| === StreamWriter 简介 === | === StreamWriter 简介 === |
| * 专门处理文本写入。 | * 专门处理文本写入。 |
| * **Flush()**: 清理缓冲区,确保数据真正写入磁盘。 | * **Flush()**: 清理缓冲区,确保数据真正写入磁盘。 |
| * **Close()**: 关闭流,释放资源。 | * **Close()**: 关闭流,释放资源。 |
| * 推荐使用 `using` 语句自动管理资源释放。 | * 推荐使用 `using` 语句自动管理资源释放。 |
| |
| === 写入 (StreamWriter) === | === 写入 (StreamWriter) === |