You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何将文件从一个目录复制粘贴到另一个目录

C# 任意格式文件复制实现方案

认知误区澄清

你之前对File.Copy方法的两个认知是错误的:

  • 不存在格式限制:File.Copy是字节级的文件操作方法,不会解析文件内容,和文件扩展名、文件格式完全无关,txt、docx、pptx、压缩包、图片、可执行程序等所有格式的文件都可以正常处理。
  • 是完整文件复制:该方法会完整复制源文件的全部二进制数据,和你在系统资源管理器中手动复制粘贴得到的文件完全一致,不是仅复制文本内容。只要源文件本身没有损坏,复制后的文件可以正常打开使用。

基础实现代码

首先需要引入IO命名空间:

using System.IO;

核心复制逻辑代码:

// 配置源文件路径、目标目录路径
string sourcePath = @"C:\工作文档\季度汇报.pptx"; // 替换为实际源文件全路径
string targetDirectory = @"D:\文件备份\2024Q3\"; // 替换为实际目标目录路径

// 前置校验
if (!File.Exists(sourcePath))
{
    throw new FileNotFoundException("指定的源文件不存在", sourcePath);
}
// 目标目录不存在时自动创建
if (!Directory.Exists(targetDirectory))
{
    Directory.CreateDirectory(targetDirectory);
}
// 拼接目标文件完整路径,自动保留源文件的文件名和扩展名
string targetPath = Path.Combine(targetDirectory, Path.GetFileName(sourcePath));

// 执行复制操作,第三个参数为true时表示允许覆盖目标路径下的同名文件
File.Copy(sourcePath, targetPath, overwrite: true);

补充说明

  • 路径处理优先使用Path类提供的Combine、GetFileName等方法,不要手动拼接路径字符串,避免跨系统运行时出现路径分隔符不兼容的问题。
  • 如果需要复制GB级别的大文件、显示复制进度,可以基于FileStream实现分块读写,底层逻辑和File.Copy一致,都是逐字节复制二进制数据,同样不限制文件格式。
  • File.Copy默认不会复制文件的创建时间、访问权限、加密属性等扩展元数据,如果需要保留这些信息,可以在复制完成后通过FileInfo类手动同步对应属性。

内容的提问来源于stack exchange,提问作者Leo Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:55:05