我正在考虑将备份实用程序作为我的下一个项目构想,但我真的不知道从哪里开始或应该如何进行备份。
任何人都可以了解归档备份和恢复等方法。
由于
答案 0 :(得分:4)
首先,我不相信我在.NET Framework中看到过专门为备份/归档/恢复活动设计的任何命名空间或类。如果有人知道,请赐教我们!
最简单的说,备份文件只是将文件从一个位置复制到另一个位置。假设您有源代码,您希望保留备份,并且它会逐日改变。您可以创建一个小型控制台应用程序,只需将目标文件夹中的所有文件复制到外部驱动器,覆盖自上次复制操作以来已更改的所有文件,并将任何新文件和文件夹添加到目标。然后使用计划任务在计算机未被使用的情况下每天运行一次该实用程序 - 或者至少在未编辑源的情况下运行该实用程序。
System.IO命名空间中有许多方法和类,这使得这相对容易。
IO命名空间中的一些有用的类是:
这是一个代码示例,它将为您提供C:驱动器根目录下所有顶级文件夹的数组:
string[] d = Directory.GetDirectories(@"C\", "*.*", SearchOption.TopDirectoryOnly);
DirectoryInfo[] di = new DirectoryInfo[d.Length];
for (int x = 0; x < d.Length; x++)
{
di[x] = new DirectoryInfo(d[x]);
}
答案 1 :(得分:2)
更简单的方法之一是:
如果您只想复制文件,那么您可以使用DirectoryInfo和FilesInfo来获取目录,文件,并执行FileCopy,FileMove等...
如果你想在目的地压缩文件,那么你可以使用现有的库,比如7z,它也有C#代码。
答案 2 :(得分:2)
AlphaVSS将完整的VSS(卷影复制服务)API公开给.NET代码。这可以允许您使用托管代码创建时间点的快照。
答案 3 :(得分:1)
答案 4 :(得分:1)
通读此Wikipedia Article - Backup并确保您了解其中的所有内容。
最简单的备份实用程序是允许用户选择源文件夹和目标文件夹,然后将其复制。 (因为这基本上都是备份)。
但是你需要一些递归文件夹调用来备份文件夹中的每个文件夹。