当前位置: 首页 > news >正文

3.1 File

1.文件基础操作

2.文件读取操作

3.文件写入操作

4.文件属性/状态判断


1.文件基础操作

usingSystem;usingSystem.IO;classFileBasicOps{staticvoidMain(){stringsourcePath="test.txt";stringcopyPath="test_copy.txt";stringmovePath="new_folder/test_moved.txt";// 1. 创建空文件(using自动释放FileStream资源,避免文件被占用)using(File.Create(sourcePath)){Console.WriteLine("空文件创建成功");}// 2. 复制文件(第三个参数true表示:目标文件已存在时覆盖)File.Copy(sourcePath,copyPath,true);Console.WriteLine("文件复制成功");// 3. 移动文件(先确保目标目录存在,否则会报错)Directory.CreateDirectory("new_folder");// 创建目标目录File.Move(copyPath,movePath);Console.WriteLine("文件移动成功");// 4. 删除文件(先判断文件是否存在,更严谨)if(File.Exists(sourcePath)){File.Delete(sourcePath);Console.WriteLine("源文件删除成功");}}}

2.文件读取操作

usingSystem;usingSystem.IO;usingSystem.Text;classFileReadOps{staticvoidMain(){stringtextPath="text_file.txt";stringbinPath="image.png";// 1. 读取全部文本(指定编码为UTF-8,避免中文乱码)stringallText=File.ReadAllText(textPath,Encoding.UTF8);Console.WriteLine("全部文本内容:\n"+allText);// 2. 按行读取文本(适合日志、配置文件)string[]lines=File.ReadAllLines(textPath);Console.WriteLine("\n按行读取:");for(inti=0;i<lines.Length;i++){Console.WriteLine($"第{i+1}行:{lines[i]}");}// 3. 读取二进制文件(如图片)byte[]binData=File.ReadAllBytes(binPath);Console.WriteLine($"\n图片文件字节数:{binData.Length}");}}

3.文件写入操作

usingSystem;usingSystem.IO;usingSystem.Text;classFileWriteOps{staticvoidMain(){stringwritePath="write_test.txt";// 1. 写入文本(覆盖原有内容,文件不存在则创建)File.WriteAllText(writePath,"Hello World!\n这是第一行文本",Encoding.UTF8);Console.WriteLine("基础文本写入成功");// 2. 按行写入文本(覆盖原有内容)string[]lines={"第二行文本","第三行文本","中文测试"};File.WriteAllLines(writePath,lines,Encoding.UTF8);Console.WriteLine("按行写入文本成功");// 3. 追加文本到末尾(不覆盖)File.AppendAllText(writePath,"\n这是追加的文本",Encoding.UTF8);File.AppendAllLines(writePath,new[]{"追加的行1","追加的行2"});Console.WriteLine("文本追加成功");// 4. 写入二进制数据(比如保存字节数组为文件)byte[]binData=Encoding.UTF8.GetBytes("二进制测试内容");File.WriteAllBytes("binary_test.bin",binData);Console.WriteLine("二进制文件写入成功");}}

4.文件属性/状态判断

usingSystem;usingSystem.IO;classFileAttrOps{staticvoidMain(){stringfilePath="test.txt";// 1. 判断文件是否存在(最常用的前置检查)if(File.Exists(filePath)){// 2. 获取文件时间信息DateTimecreateTime=File.GetCreationTime(filePath);DateTimemodifyTime=File.GetLastWriteTime(filePath);Console.WriteLine($"文件创建时间:{createTime}");Console.WriteLine($"文件最后修改时间:{modifyTime}");// 3. 获取/设置文件属性(设为只读)FileAttributesattr=File.GetAttributes(filePath);File.SetAttributes(filePath,attr|FileAttributes.ReadOnly);Console.WriteLine("文件已设为只读");// 恢复属性(取消只读)File.SetAttributes(filePath,attr);Console.WriteLine("文件只读属性已取消");}else{Console.WriteLine("文件不存在");}}}
http://www.jsqmd.com/news/221279/

相关文章:

  • 向量数据库全生命周期管理终极指南:从部署到亿级数据运维,收藏级干货助你打造高性能AI检索系统
  • Thinkphp-Laravel基于Vue的健身房信息管理系统_q3su4
  • 开源远程桌面工具RustDesk详解:绿色便携、无需注册的远程控制新选择
  • 收藏!揭秘:90%的前端AI项目都是“伪AI“,大厂级AI产品的前端核心能力深度解析
  • 护照阅读器精美包装
  • 【必看收藏】LangChain v1.0大更新!create_agent核心功能详解,让你的AI助手更强大
  • Edge浏览器143便携版:基于Chromium内核的官方增强,免安装更轻便
  • 从零实现数字信号观测:Proteus示波器使用方法
  • 基于Windows的Packet Tracer网络仿真项目应用实例
  • Thinkphp-Laravel基于体能分析的个性化健身方案生成
  • 智能体路由模式深度解析:4种实现方式+5步落地方法,收藏级干货
  • 中安未来护照阅读器精美包装
  • 上升下降时间对比:TTL与CMOS开关特性的深度解析
  • Thinkphp-Laravel基于协同过滤算法的图书借阅推荐系统vue功能多
  • Java中的三大特性 - 超详细篇_java类的三特性探讨,零基础入门到精通,收藏这篇就够了
  • rs485和rs232区别总结详解:图文并茂易懂版
  • 快速理解WinDbg Preview的Local Kernel Debugging
  • 爆肝整理!AI Agent记忆系统全指南:一篇搞定记忆三大核心问题,建议收藏!
  • Thinkphp-Laravel基于协同过滤算法的药品商城推荐系统vue_b46n1
  • Proteus 8 Professional下载赋能在线远程教学解决方案探讨
  • 强烈安利专科生必看!9个AI论文网站TOP9测评
  • 通俗解释ES6语法中的类与继承机制
  • 有关HDFS的三种客户端操作方式详解 (命令行,网页界面,Java API一步到位)_hdfs客户端,收藏这篇就够了
  • Thinkphp-Laravel基于微信小程序一对一教学班级作业小助手的设计与实现_7nl0d
  • 手把手教你绘制RS485接口详细接线图(含MAX485)
  • I2C协议总线电容影响分析:长线传输性能下降原因
  • EI会议推荐!早鸟价!2026年先进电子与自动化技术国际学术会议(AEAT 2026)
  • WinDbg加载符号文件完整指南:精准定位驱动问题
  • Thinkphp-Laravel微信小程序 的个人身体健康饮食推荐系统 _184bw
  • IPD咨询洞察:别再让客户试用“踩坑”!IPD模式下的客户试用管理全流程实战指南