C#中File.Copy方法的参数overwrite取false和true的区别

news2025/4/2 18:46:07

当调用 `System.IO.File.Copy` 方法时,第三个参数 `overwrite` 控制着如果目标位置已经存在同名文件的情况下如何处理。

1、当 `overwrite` 设置为 `true`

在这种情况下,即使目标路径下已经有相同名称的文件,该方法也会无条件地覆盖现有的文件。这不会引发异常,并且会直接替换旧文件的内容。

string sourceFile = @"c:\temp\New Text Document.txt";
string destinationFile = @"c:\temp\test.txt";

// 将会覆盖 test.txt 文件中的内容
System.IO.File.Copy(sourceFile, destinationFile, true);

2、当 `overwrite` 设置为 `false`

此时,若目标路径中已有同名文件,则会发生异常 (`IOException`),因为不允许覆盖现有文件。此行为有助于防止意外的数据丢失或破坏。

try {
    string sourceFile = @"c:\temp\New Text Document.txt";
    string destinationFile = @"c:\temp\test.txt";

    // 若 test.txt 已经存在,则抛出 IOException
    System.IO.File.Copy(sourceFile, destinationFile, false);
} catch (System.IO.IOException ex) {
    Console.WriteLine($"无法复制文件: {ex.Message}");
}

3、测试程序

分别测试overwrite不同只与文件是否存在,可以分成四种情况

using System;
using System.IO;
using System.Windows;


namespace Test07
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo finfo = new FileInfo("sourceFile.txt");         //实例化FileInfo对象

            //overwrite:是否存在=1:1=TRUE:Exist
            try
            {
                finfo.CopyTo("destFile_11.txt", overwrite: true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);//简洁版报错
                MessageBox.Show(ex.ToString());//详细版报错
            }

            //overwrite:是否存在=0:1=false:Exist
            try
            {
                finfo.CopyTo("destFile_01.txt", overwrite: false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                MessageBox.Show(ex.ToString());
            }

            //overwrite:是否存在=1:0=TRUE:NotExist
            try
            {
                finfo.CopyTo("destFile_10.txt", overwrite: true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                MessageBox.Show(ex.ToString());
            }

            //overwrite:是否存在=0:0=false:NotExist
            try
            {
                finfo.CopyTo("destFile_00.txt", overwrite: false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                MessageBox.Show(ex.ToString());
            }
            Console.ReadLine();
        }
    }
}

3.1、程序运行前

..\bin\Debug路径下的文件

①源文件【sourceFile.txt】,其内容为九九乘法表

1*1=1
1*2=2, 2*2=4
1*3=3, 2*3=6, 3*3=9
1*4=4, 2*4=8, 3*4=12, 4*4=16
1*5=5, 2*5=10, 3*5=15, 4*5=20, 5*5=25
1*6=6, 2*6=12, 3*6=18, 4*6=24, 5*6=30, 6*6=36
1*7=7, 2*7=14, 3*7=21, 4*7=28, 5*7=35, 6*7=42, 7*7=49
1*8=8, 2*8=16, 3*8=24, 4*8=32, 5*8=40, 6*8=48, 7*8=56, 8*8=64
1*9=9, 2*9=18, 3*9=27, 4*9=36, 5*9=45, 6*9=54, 7*9=63, 8*9=72, 9*9=81

 ②目标文件【destFile_01.txt】,其内容为文件名

 ②目标文件【destFile_11.txt】,其内容为文件名

3.2、程序运行中

3.3、程序运行后

..\bin\Debug路径下的文件

 参考

清华大学出版社-图书详情-《C#从入门到精通(第6版)》

叩响C#之门 (豆瓣)

C知道-开发者的首选AI搜索引擎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2300686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用promptfoo做大模型安全性测评

1. 引入 promptfoo 是一款专为大模型安全测试打造的强大工具。它能通过红队测试、渗透测试以及漏洞扫描等方式,对各类大模型展开深度安全评估,全面检测模型在不同场景下的安全性。 2. 运行promptfoo的过程 安装nodejs 用npm安装promptfoo npm insta…

用STC-ISP写延时函数

若想写出自己可以定义时长的延时函数,需要重新生成一个1ms的延时函数并稍加修改。 STC-ISP生成的1ms的延时函数代码如下: void Delay1ms(void) //12.000MHz {unsigned char data i, j;i 2;j 239;do{while (--j);} while (--i); }将上述代码改为可自定…

Jetson Agx Orin平台JP6.0-r36.3版本修复了vi模式下的原始图像损坏(线条伪影)

1.问题描述 这是JP-6.0 GA/ l4t-r36.3.0的一个已知问题 通过vi模式捕获的图像会导致异常线条 参考下面的快照来演示这些线伪影 这个问题只能通过VI模式进行修复,不应该通过LibArgus看到。 此外,这是由于内存问题。 由于upstream已经将属性名称更改为“dma-noncoherent”…

MSI微星电脑冲锋坦克Pro Vector GP76 12UGS(MS-17K4)原厂Win11系统恢复镜像,含还原功能,预装OEM系统下载

适用机型:【MS-17K4】 链接:https://pan.baidu.com/s/1P8ZgXc6S_J9DI8RToRd0dQ?pwdqrf1 提取码:qrf1 微星笔记本原装出厂WINDOWS11系统自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志、Office办公软件、MSI Center控制中心等预装…

Pycharm中断点使用技巧

1. 打开项目并准备代码 首先,打开 PyCharm 并加载你的 Python 项目,确保你已经有想要调试的 Python 代码文件。如: def add_numbers(a, b):result a breturn resultnum1 5 num2 3 sum_result add_numbers(num1, num2) print(f"Th…

洛谷P11042 [蓝桥杯 2024 省 Java B] 类斐波那契循环数

像是这种填空题的话&#xff0c;就直接暴力还更加省时间&#xff0c;在本地算完后直接提交答案即可 #include<bits/stdc.h> using namespace std;const int N 10000000;bool isnumber(int n) {vector<int> a;int m n;while (n > 0) {a.push_back(n % 10);n / …

echarts心电图封装方法

效果图 代码 <div id"line1" style"width: 100%;height: 100px;"></div>// 生成图标方法 /*** 生成图表* param {array} cData 图表数据* param {string} home 图表渲染位置Id* param {number} speed 刷新速度 值越大&#xff0c;刷新速度越快…

使用Linux创作第一个小程序--进度条

Linux第一个小程序 - 进度条 储备知识 1.回车换行 回车概念 \r 换行概念 \n 2.缓冲区 sleep 先执行1 后执行2&#xff08;c语言中是按顺序执行的&#xff09; 那么在我sleep期间&#xff0c;“Hello World”一定是被保存起来了&#xff08;缓冲区&#xff09;。 缓冲区&a…

初识LLMs

目录 一、Language AI 历史 二、Language AI如何处理text 三、技术一&#xff1a;Bag-of-Words模型 缺点 四、技术二&#xff1a;word2vec&#xff08;稠密向量 / 嵌入向量&#xff09; 缺点 五、嵌入的多种形式 六、技术三&#xff1a;注意力机制 6.1 上下文嵌入 缺…

SpringAI系列 - RAG篇(三) - ETL

目录 一、引言二、组件说明三、集成示例一、引言 接下来我们介绍ETL框架,该框架对应我们之前提到的阶段1:ETL,主要负责知识的提取和管理。ETL 框架是检索增强生成(RAG)数据处理的核心,其将原始数据源转换为结构化向量并进行存储,确保数据以最佳格式供 AI 模型检索。 …

leetcode:942. 增减字符串匹配(python3解法)

难度&#xff1a;简单 由范围 [0,n] 内所有整数组成的 n 1 个整数的排列序列可以表示为长度为 n 的字符串 s &#xff0c;其中: 如果 perm[i] < perm[i 1] &#xff0c;那么 s[i] I 如果 perm[i] > perm[i 1] &#xff0c;那么 s[i] D 给定一个字符串 s &#xff0…

【智驭未来】使用Deepseek进行业务系统集成场景分析

DeepSeek已经出来了一段时间&#xff0c;各系统厂商纷纷加入对他的支持行列&#xff0c;有使用他来进行数据智能预测分析的&#xff0c;有使用他来进行系统知识智能问答的&#xff0c;有进行多语言处理和文档智能解析的&#xff0c;也有开发工具支持AI代码生成的。根据厂商产品…

探秘Transformer系列之(3)---数据处理

探秘Transformer系列之&#xff08;3&#xff09;—数据处理 接下来三篇偏重于工程&#xff0c;内容略少&#xff0c;大家可以当作甜点 _。 0x00 概要 有研究人员认为&#xff0c;大模型的认知框架看起来十分接近卡尔弗里斯顿(Karl Friston)描绘的贝叶斯大脑。基于贝叶斯概率…

cesium视频投影

先看效果 使用cesium做视频投影效果&#xff0c;而且还要跟随无人机移动而移动&#xff0c;我现在用定时器更新无人机的坐标来实现效果具体代码如下&#xff1a; 1、CesiumVideo3d.js(某个cesium技术群大佬分享的) // import ECEF from "./CoordinateTranslate"; le…

[算法学习笔记]1. 枚举与暴力

一、枚举算法 定义 枚举是基于已有知识来猜测答案的问题求解策略。即在已知可能答案的范围内&#xff0c;通过逐一尝试寻找符合条件的解。 2. 核心思想 穷举验证&#xff1a;对可能答案集合中的每一个元素进行尝试终止条件&#xff1a;找到满足条件的解&#xff0c;或遍历完…

Burp Suite基本使用(web安全)

工具介绍 在网络安全的领域&#xff0c;你是否听说过抓包&#xff0c;挖掘漏洞等一系列的词汇&#xff0c;这篇文章将带你了解漏洞挖掘的热门工具——Burp Suite的使用。 Burp Suite是一款由PortSwigger Web Security公司开发的集成化Web应用安全检测工具&#xff0c;它主要用于…

RabbitMQ 3.12.2:单节点与集群部署实战指南

前言&#xff1a;在当今的分布式系统架构中&#xff0c;消息队列已经成为不可或缺的组件之一。它不仅能够实现服务之间的解耦&#xff0c;还能有效提升系统的可扩展性和可靠性。RabbitMQ 作为一款功能强大且广泛使用的开源消息中间件&#xff0c;凭借其高可用性、灵活的路由策略…

【故障处理】- 11G expdp导出缓慢 + Streams AQ: enqueue blocked on low memory等待事件

【故障处理】- 11G expdp导出缓慢 Streams AQ: enqueue blocked on low memory等待事件 一、概述二、故障原因三、解决方法 一、概述 该问题的数据库版本是11.2.0.4&#xff0c;执行expdp导出的时候&#xff0c;小表导出非常缓慢&#xff0c;同时有Streams AQ: enqueue blocke…

《仙台有树》里的馅料(序)

《仙台有树》一起追剧吧&#xff08;二&#xff09;&#xff1a;馅料合集概览 ●德爱武美玩&#xff0c;全面发展 ●猜猜我是谁&真假美清歌 ●失忆的风还是吹到了仙台 ●霸道师徒强制收&你拜我&#xff0c;我拜你&#xff0c;师徒徒师甜蜜蜜 ●霸道总裁强制爱 ●仙台有…

【Linux】文件系统:文件fd

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.回顾C文件接口02.系统文件I/O02.1 openflags 参数&#xff08;文件打开模式&#xff09;标记位传参1. 访问模式&#xff08;必须指定一个&#xff09;2. 额外控制标志&#xf…