【发布时间】:2015-08-19 06:57:13
【问题描述】:
我正在尝试编写一个程序来保持多个文件夹同步。为此,我需要复制和删除文件和子文件夹。
对我来说,对象是文件还是文件夹并没有什么区别,我想创建所有必要的父文件夹并复制对象,必要时覆盖。我目前正在使用一个锯齿状的 FileSystemInfo 数组来保存我的文件/文件夹。
这样做的好处是可以避免重复代码来分别同步文件和文件夹。
但是,我不知道如何复制 FileSystemInfo。我正在寻找一种能够复制/删除/读取创建或修改时间的方法,该方法适用于文件和文件夹。
【问题讨论】:
-
没有 .NET 或 Windows API 函数可以在给定文件名时复制文件,或者在给定文件夹名称时复制文件夹。也不应该有。文件和文件夹是根本不同的东西。如果你想在你的代码中同样对待它们,那么你必须编写逻辑来确定哪个是哪个,并进行适当的系统调用。
-
为什么要复制robocopy?类似于
Process.Start("robocopy", root + " /MIR")的东西似乎是您最好的选择。 -
吉姆——我担心可能是这样。我知道它们是不同的,但在这种情况下,我想以同样的方式对待它们,因为我希望有人能够创建或删除一个文件夹并同步该文件夹,无论它是否包含文件。
-
whoisj - 我从未听说过 robocopy。它是什么?另外,作为旁注,有人知道如何在您的评论中创建换行符吗?
-
Robocopy 是 Windows 自带的命令行工具。在命令行中执行
Robocopy /?,或使用您最喜欢的搜索引擎。而且您不能在评论中添加换行符。如果您的评论如此详细,请编辑您的问题。