C#怎么操作文件复制移动删除 C#如何用File和FileInfo类复制移动重命名和删除文件【基础】

张开发
2026/4/12 20:20:29 15 分钟阅读

分享文章

C#怎么操作文件复制移动删除 C#如何用File和FileInfo类复制移动重命名和删除文件【基础】
File.Copy 默认不覆盖目标文件会抛出 IOException需显式传入 true 参数才覆盖但只读文件仍可能失败。File.Copy 会覆盖目标文件吗默认不报错但要小心File.Copy 默认遇到同名目标文件会直接抛出 IOException“目标文件已存在”。这不是“不覆盖”而是“拒绝覆盖”——它不会静默跳过也不会自动覆盖。想覆盖就加第三个参数 trueFile.Copy(a.txt, b.txt, true)如果目标是只读文件即使加了 true仍可能失败Windows 下常见得先用 File.SetAttributes 清掉 ReadOnly跨卷复制比如 C: → D:本质是“复制 删除”不是原子操作中途失败会导致源存、目标残缺FileInfo.MoveTo 为什么报“访问被拒绝”路径和权限是主因FileInfo.MoveTo 看似简单但失败时错误信息常是模糊的 UnauthorizedAccessException 或 IOException。真正卡点往往不在代码本身。目标路径的父目录必须**已存在**MoveTo 不会自动创建中间目录不像 Directory.CreateDirectory如果目标在另一磁盘本质是复制删除需对**源文件 目标目录**都有写权限NTFS 权限继承没配好就跪不能用 MoveTo 跨进程锁定的文件比如 Excel 正在编辑的 .xlsx会立刻失败无重试机制重命名用 MoveTo 还是 Replace要看是否允许覆盖旧文件重命名本质就是移动到同目录下的新名字但 Windows 和 .NET 提供了两个语义不同的 APIFileInfo.MoveTo 和 File.Replace。 知网AI智能写作 知网AI智能写作写文档、写报告如此简单

更多文章