创建备份应用程序

【勇芳软件工作室】汉化HomePreviousNext

要在磁带上执行任何输入或输出,备份应用程序必须首先获取磁带设备的句柄。以下代码示例显示如何使用CreateFile功能打开磁带设备。

HANDLE hTape; /* handle to tape device */

hTape = CreateFile(

“\\\\\\\\。\\\\ TAPE0”,/ *要打开的磁带设备的名称* /

GENERIC_READ | GENERIC_WRITE,/ *读写访问* /

0,/ *未使用* /

0,/ *未使用* /

磁带设备需要OPEN_EXISTING / * * /

0,/ *未使用* /

NULL); /* not used */

要将目录树备份到磁带,应用程序必须使用FindFirstFileFindNextFile函数遍历目录树。每次找到文件时,应用程序应使用GetFileAttributes功能获取文件的属性。如果有硬链接,应用程序应该确定链接的数量,并将文件的唯一标识符保存在表中以供将来进行比较。首次找到文件时,应用程序应使用CreateFile打开文件和BackupRead功能开始备份。然后可以重复使用WriteFile功能将由BackupRead填充的缓冲区中的所有信息传输到磁带。第二次找到文件(当有硬链接时,检查文件标识符表),应用程序可以简单地将一般文件信息写入磁带,后跟标识符为BACKUP_LINK的流。

将文件从磁带恢复到磁盘时,应用程序必须使用CreateFileBackupWriteReadFile功能。对于磁带上的每个文件,应用程序应使用CreateFile在磁盘上创建一个新文件,BackupWrite开始恢复文件。然后应该重复使用ReadFile,直到文件的所有信息都已从磁带读入BackupWrite填充的缓冲区中。如果BackupWrite缓冲区中的一个流具有BACKUP_LINK流标识符,则应用程序必须建立一个硬链接。如果建立链接所需的数据不存在,BackupWrite将失败。应用程序可以使用预先存在的目录来定位和恢复原始数据,或者可以通知用户要恢复的文件数据位于不同的位置。