将目录复制到输出目录 - 控制台应用程序 .NET

Posted

技术标签:

【中文标题】将目录复制到输出目录 - 控制台应用程序 .NET【英文标题】:Copy Directory to Output Directory - Console Application .NET 【发布时间】:2010-09-21 10:49:49 【问题描述】:

有没有办法在 C#.NET 的控制台应用程序中将整个目录复制到输出目录?

我知道对于文件,您可以右键单击它们、属性并标记复制到输出目录。但我不会为 20.000 个文件这样做...

谢谢,Lieven Cardoen aka Johlero

【问题讨论】:

为什么需要 20k 个文件?这些是什么?我必须知道,伙计! 如果它们仅供阅读,请考虑硬链接。 【参考方案1】:

您可以按 ctrl+A 突出显示所有这些,然后按 ctrl+C 复制它们,然后转到新目录并按 ctrl+V 将它们全部粘贴到新位置...

或者您可以打开命令窗口并使用复制...但第一种方法可能更简单。

【讨论】:

【参考方案2】:

您确定要输出所有 20000 个文件吗?

除了手动复制粘贴操作,我看到两个选项:一个是您可以有一个构建后任务来复制所有文件,另一个是压缩 20000 个文件,将 zip 文件作为内容项添加到您的项目中,使用 "始终复制“设置,然后控制台应用程序解压缩它们,或者构建后步骤正在调用解压缩实用程序来执行此操作。

【讨论】:

【参考方案3】:

    在开发过程中,使用应用程序配置来指向这些文件当前所在的位置,而不是复制它们。 (在每个构建中复制那么多对象是一场噩梦。即使只复制新的/更新的文件)

    在准备发布构建时,您可能需要考虑使用构建脚本和 MSBuild 或 NAnt 来为您执行此类操作。

    如果您真的确信您仍然希望在每个构建中执行复制 - 使用 Post/pre-build 脚本(在您的项目构建配置中,指向执行 xcopy..一些智能批处理脚本有时会很有帮助)。

【讨论】:

以上是关于将目录复制到输出目录 - 控制台应用程序 .NET的主要内容,如果未能解决你的问题,请参考以下文章

将所有依赖项从 .Net 标准库复制到 .Net Framework Console 应用程序

将“复制到输出目录”的默认选项设置为“始终复制”

复制本地如何工作? log4net.dll 没有被复制到 MyProject 输出目录

ASP.NET Core MVC压缩样式脚本及总是复制文件到输出目录

使用.net core读取Json文件配置

防止将引用的程序集PDB和XML文件复制到输出