一个简单的程序,用于备份您的程序文件夹






4.50/5 (3投票s)
一个用于备份程序文件夹的应用程序。
引言
本文介绍如何构建一个简单的控制台应用程序,该程序使用 Windows 计划任务定期(例如,每天和/或每月)备份您的应用程序文件夹。 在此应用程序中,您还可以过滤某些文件夹(例如 Bin 或 images)或某些文件扩展名(例如 .pdb 或 .user),或者避免备份某些文件。
背景
您可以使用 Windows 计划任务定期或仅运行一次某些任务。 它可通过“附件”->“系统工具”菜单项访问。 您可以指定一个可执行文件(本项目的 js 文件)以定期或仅运行一次的方式运行。
我将使用 js 文件作为可执行文件,因为您可以使用记事本轻松更改它,这是系统管理员使用它制作管理脚本的常用扩展名。 我还在 .NET2.0 中使用 java.util.zip
命名空间来创建压缩备份。 由于它能够将新条目添加到 Zip 文件,因此该命名空间优于 System.IO.Compression
。
使用代码
这只是一个简单的应用程序,包括两个文件;一个是包装 java.util.zip
类的 ZipClass
,另一个是具有一些静态方法来创建备份的主程序类。 Main
方法是控制台应用程序的启动点,它从命令行获取参数(我们可以通过 cmd.exe 实用程序或我在 js 文件中使用 WScript.Shell
的 Execute
方法的方式传递它们)。
static void Main(string[] args) {
string argFilePath;
if (args.Length > 0 && !string.IsNullOrEmpty(args[0])
&& File.Exists(args[0]) )
{
.....
此应用程序中的 Main
方法接受一个参数,该参数指定正在运行的参数的文件路径(运行配置)。 我对这些文件使用了“.prm”扩展名,但这完全是可选的。 参数文件是一个 XML 文件,如下所示<Parameters>
<Folders>
<Source>M:\Mehran</Source>
<Destination>M:\MonthlyMehranBackup</Destination>
</Folders>
<FilterExpersions>
<Folder>Obj|Debug|Release|Prototype|support</Folder>
<File></File>
<Extention>.pdb</Extention>
</FilterExpersions>
<Type>RootFolder</Type>
</Parameters>
如您所见,此文件充当配置文件;您指定源路径和目标路径,以及要应用的过滤器。 最后,您应该为每个备份策略创建一个 js 文件,内容如下(如果前面的参数文件名为“MonthlyBackupMaker.prm”):
var oShell = new ActiveXObject("WScript.Shell");
oShell.Exec("BackupMaker.exe MonthlyBackupMaker.prm");
现在一切都完成了;您应该只需添加一个计划任务来每月运行此 js 文件,例如。
如果您指定类型为“RootFolder”(如上例所示,而不是“FileOnly”),则应用程序将测试源子文件夹(第一级)的 LastWriteTime
是否小于上次备份日期。
static bool FolderIsExpired(DirectoryInfo DirInf)
{
if (DirInf.LastWriteTime >= perviousBackUpDate)
return true;
return false;
}