65.9K
CodeProject 正在变化。 阅读更多。
Home

Zeta Folder XCOPY

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (10投票s)

2009年9月26日

CPOL

1分钟阅读

viewsIcon

54107

downloadIcon

888

一个小型类,用于在 C# 中执行基本的 XCOPY 类操作。

ZetaFolderXCopy

引言

在将一些命令脚本迁移到更健壮的解决方案的过程中,该解决方案涉及C# 脚本,我需要用 C# 中的等效代码替换几个 XCOPY 调用。

我想要避免的是简单地 启动一个 CMD.EXE 进程并调用 XCOPY 命令。

相反,我寻找 .NET/C# 中的类/函数,它可以作为替代方案。虽然我 找到了一些解决方案,但没有一个能以我想要的方式工作。

Using the Code

因此,我决定开发自己的小型解决方案,这并不是什么高深的代码,但它满足了我的需求。

它比 XCOPY 具有更少的功能,并且旨在用于复制文件夹(原始 XCOPY 适用于文件和文件夹)。 此外,它被设计为在控制台环境中使用的(即,操作是同步的且会阻塞)。

一个示例调用如下

var options =
    new ZetaFolderXCopyOptions
        {
            FilesPattern = "*.*",
            RecurseFolders = true,
            CopyEmptyFolders = true,
            CopyHiddenAndSystemFiles = true,
            OverwriteExistingFiles = true,
            CopyOnlyIfSourceIsNewer = false,
            FoldersPattern = "*"
        }
        .AddExcludeSubStrings(
            "\\.svn\\",
            "\\_svn\\",
            "\\_Temporary\\" );

var xc = new ZetaFolderXCopy();
xc.Copy(
    sourceFolderPath,
    destinationFolderPath,
    options );

完整的代码由一个 .CS 文件组成,可以从本文的顶部下载。

只需将其放入您的解决方案/脚本中使用即可。

结语

本文介绍了一个小类,用于执行 XCOPY 和 ROBOCOPY 从您的 C# 代码中执行的基本操作。

如往常一样,我很乐意收到您的反馈、建议和改进。 欢迎在文章的讨论区下方给我留言。

历史

  • 2018-05-27 — 最新代码片段位于 此 Pastebin
  • 2009-09-25 — 首次发布
© . All rights reserved.