C#怎么复制文件?C#如何拷贝文件到指定目录详细步骤

来源:中国站长站作者:广州网站建设头衔:草根站长
导读:本期聚焦于小伙伴创作的《C#怎么复制文件?C#如何拷贝文件到指定目录详细步骤》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#怎么复制文件?C#如何拷贝文件到指定目录详细步骤》有用,将其分享出去将是对创作者最好的鼓励。

在C#程序里复制文件是一项基础但常用的操作,无论做数据备份、日志搬运还是资源发布都会用到。掌握正确的复制方式能避免路径错误和权限异常。

C#怎么复制文件?C#如何拷贝文件到指定目录详细步骤

使用File.Copy方法复制文件

System.IO命名空间下的File类提供了静态方法Copy,可以直接把源文件复制到目标路径。它有两个常用重载:一个不覆盖已有文件,另一个通过参数控制是否覆盖。

基本步骤

  • 引入System.IO命名空间
  • 检查源文件是否存在
  • 确保目标目录存在,不存在则创建
  • 调用File.Copy并指定覆盖选项

代码示例

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string sourceFile = @"C:datatest.txt";
        string destDir = @"D:backup";
        string destFile = Path.Combine(destDir, Path.GetFileName(sourceFile));

        // 确保目标目录存在
        if (!Directory.Exists(destDir))
        {
            Directory.CreateDirectory(destDir);
        }

        // 复制文件,true表示覆盖已存在的文件
        if (File.Exists(sourceFile))
        {
            File.Copy(sourceFile, destFile, true);
            Console.WriteLine("文件已复制到:" + destFile);
        }
        else
        {
            Console.WriteLine("源文件不存在");
        }
    }
}

使用FileInfo类拷贝文件

FileInfo是面向对象的文件操作方式,先创建FileInfo实例再调用CopyTo方法,适合在已经持有文件对象时使用。

示例代码

using System;
using System.IO;

class Program
{
    static void Main()
    {
        FileInfo file = new FileInfo(@"C:datatest.txt");
        string destPath = @"D:backuptest.txt";

        if (file.Exists)
        {
            // 确保目录存在
            if (!Directory.Exists(Path.GetDirectoryName(destPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(destPath));
            }
            // 拷贝并覆盖
            file.CopyTo(destPath, true);
            Console.WriteLine("FileInfo复制完成");
        }
    }
}

用文件流方式自定义复制

如果需要在复制时做进度监控或转换内容,可以用FileStream配合读写缓冲区完成拷贝。

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string src = @"C:datatest.txt";
        string dst = @"D:backuptest.txt";

        using (FileStream inStream = new FileStream(src, FileMode.Open))
        using (FileStream outStream = new FileStream(dst, FileMode.Create))
        {
            byte[] buffer = new byte[8192];
            int read;
            while ((read = inStream.Read(buffer, 0, buffer.Length)) > 0)
            {
                outStream.Write(buffer, 0, read);
            }
        }
        Console.WriteLine("流复制完成");
    }
}

常见错误处理

异常类型原因处理方式
DirectoryNotFoundException目标目录不存在调用Directory.CreateDirectory
FileNotFoundException源文件不存在复制前用File.Exists检查
UnauthorizedAccessException无写入权限以管理员运行或修改目录权限

实际项目中建议把复制逻辑封装成方法,并加入日志和异常捕获,这样在C#里拷贝文件到指定目录会更稳定可靠。

C#文件复制File_Copy修改时间:2026-07-25 22:57:11

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。