Creating a Backup Application
To perform any input or output on a tape, a backup application must first
obtain a handle of the tape device. The following code sample shows how to use the
CreateFile function to open a tape device.
HANDLE hTape; /* handle to tape device */
hTape = CreateFile(
"\\\\.\\TAPE0", /* name of tape device to open */
GENERIC_READ | GENERIC_WRITE, /* read-write access */
0, /* not used */
0, /* not used */
OPEN_EXISTING, /* required for tape devices */
0, /* not used */
NULL); /* not used */
To back up a directory tree to a tape, an application must use the
FindFirstFile and
FindNextFile functions to traverse the directory tree. Each time a file is found, the
application should get the file's attributes by using the
GetFileAttributes function. If there are hard links, the application should determine the
number of links and save the file's unique identifier in a table for future
comparisons. The first time a file is found, the application should use
CreateFile to open the file and the
BackupRead function to begin the backup. Then it can use the
WriteFile function repeatedly to transfer all the information in the buffer filled by
BackupRead to the tape. The second time a file is found (checked against the table of
file identifiers when there are hard links), the application can simply write the
general file information to the tape, followed by a stream whose identifier is
BACKUP_LINK.
When restoring files from tape to disk, an application must use the
CreateFile,
BackupWrite, and
ReadFile functions. For each file on the tape, the application should use
CreateFile to create a new file on disk and
BackupWrite to begin restoring the file. Then it should use
ReadFile repeatedly until all the information for the file has been read from the tape
into the buffer filled by
BackupWrite. If one of the streams in the
BackupWrite buffer has a BACKUP_LINK stream identifier, the application must establish a
hard link. If the data needed to establish the link does not exist,
BackupWrite fails. The application can use a preexisting catalog to locate and restore
the original data, or it can notify the user that the file data to be restored is
in a different location.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database