【Untiy 3D】C#中文件夹与读写文件操作详解(附测试代码 超详细)

简介: 【Untiy 3D】C#中文件夹与读写文件操作详解(附测试代码 超详细)

一个文件是一个存储在磁盘中带有指定名称和目录路径的数据集合,当打开文件进行读写时,它变成一个流

从根本上来说,流是通过通信路径传递的字节序列,有两个主要的流,输入流和输出流,输入流用于从文件读取数据,输出流用于向文件写入数据

一、I/O类

1:Directory类

对文件夹的操作主要通过Directory类和DirectoryInfo类进行,这两个类中都包含了一组用来创建、移动、删除和枚举所有目录或者子目录的成员的方法 常用方法如下

DirectoryInfo类与Directory类区别在于前者是普通类,需要先实例化才能使用,后者是静态类可以直接使用

CreateDirectory  在指定路径中创建所有目录和子目录

Delete 从指定路径中删除空目录

Exists 判断指定目录中是否存在现有目录

2:File类

对文件的创建 删除 移动 打开操作主要使用File类和FileInfo类

Create 在指定路径中创建或覆盖文件

Delete 删除指定的文件

Exists 确定指定的文件是否存在

Move 将指定的文件移动新位置

Open 打开指定路径的文件 指定读或写模式

3:Stream类

Stream类用于从文件中读取二进制数据,或使用流读写文件 常用方法如下

Read 从基础流中读取字符 并把流的当前位置往前移

Close 关闭当前Stream对象和基础流

Write 把数据写入基础流中

Flush 清理当前所有缓冲区 使所有缓冲数据写入基础设备

Seek 设置当前流内的位置

二、读/写文件

比较常用的方法就是使用File类打开文件,读取数据,将数据保存在FileStream文件流对象中,FileStream类继承于Stream类 然后通过FileStream文件流对象写入数据

using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_11_1 : MonoBehaviour
{
    void Start()
    {
        //首先判断是否存在文件夹
        if (Directory.Exists(@"C:\Temp"))
        {
            //存在文件夹
            //删除当前文件夹
            Directory.Delete(@"C:\Temp", true);
            //然后创建文件夹
            Directory.CreateDirectory(@"C:\Temp");
        }
        else
        {
            //不存在文件夹
            Directory.CreateDirectory(@"C:\Temp");
        }
    }
}

向文件中写入数据

using System.IO;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_11_2 : MonoBehaviour
{
    void Start()
    {
        string path = @"C:\Temp\MyTest.txt";
        //首先判断是否存在文件
        if (!File.Exists(path))
        {
            //创建文件
            using (FileStream fs=File.Create(path))
            {
                byte[] info = new UTF8Encoding(true).GetBytes("new text");
                //添加数据到文件中
                fs.Write(info, 0, info.Length);
            }
        }
        using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);
            while (fs.Read(b, 0, b.Length) > 0)
            {
                Debug.Log(temp.GetString(b));
            }
        }
    }
}

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
256 1
|
4月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
468 27
|
3月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
368 0
|
24天前
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。
|
2月前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
4月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
190 0
|
5月前
|
测试技术 Go 开发者
如何为 gRPC Server 编写本地测试代码
本文介绍了如何使用 Go 语言中的 gRPC 测试工具 **bufconn**,通过内存连接实现 gRPC Server 的本地测试,避免端口冲突和外部依赖。结合示例代码,讲解了初始化内存监听、自定义拨号器及编写测试用例的完整流程,并借助断言库提升测试可读性与准确性。适用于单元及集成测试,助力高效开发。
82 1
|
7月前
|
存储 jenkins 测试技术
Apipost自动化测试:零代码!3步搞定!
传统手动测试耗时低效且易遗漏,全球Top 10科技公司中90%已转向自动化测试。Apipost无需代码,三步实现全流程自动化测试,支持小白快速上手。功能涵盖接口测试、性能压测与数据驱动,并提供动态数据提取、CICD集成等优势,助力高效测试全场景覆盖。通过拖拽编排、一键CLI生成,无缝对接Jenkins、GitHub Actions,提升测试效率与准确性。
541 11
|
7月前
|
人工智能 自然语言处理 测试技术
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
Codex CLI是OpenAI推出的轻量级AI编程智能体,基于自然语言指令帮助开发者高效生成代码、执行文件操作和进行版本控制,支持代码生成、重构、测试及数据库迁移等功能。
1270 0
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动