CopyToVault Method
Copies files and directories from a physical filesystem to the vault.
Syntax
public void copyToVault(String systemPath, String vaultPath, String mask, int flags, int encryption, String password, int compression, int compressionLevel, int pagesPerBlock);
Remarks
This method copies the files and directories from a physical filesystem location, specified by SystemPath, to the specified VaultPath. Only the files and directories whose names match the specified Mask are copied.
The values passed for SystemPath and VaultPath must be system-local and vault-local absolute paths, respectively. The value passed for Mask may contain wildcard characters.
The Flags parameter is used to control recursion and overwrite behavior, and should be set by OR'ing together zero or more of the following flags:
CBFSSTORAGE_CFF_OVERWRITE_NONE | 0x00000000 | Never overwrite destination files. |
CBFSSTORAGE_CFF_OVERWRITE_IF_NEWER | 0x00000001 | Overwrite a destination file only if the source file is newer. |
CBFSSTORAGE_CFF_OVERWRITE_ALL | 0x00000002 | Always overwrite destination files. |
CBFSSTORAGE_CFF_INCLUDE_SUBDIRS_WITH_CONTENTS | 0x00010000 | Include all subdirectories in source directory, and their contents, recursively. |
CBFSSTORAGE_CFF_INCLUDE_SUBDIRS_NO_CONTENTS | 0x00020000 | Include all subdirectories in the source directory, without their contents. |
The Encryption parameter specifies Encryption behavior for files created (or overwritten) during the copy operation. Valid values are:
CBFSSTORAGE_EM_NONE | 0x0 | Don't use encryption. |
CBFSSTORAGE_EM_DEFAULT | 0x1 | Use default encryption (CBFSSTORAGE_EM_XTS_AES256_PBKDF2_HMAC_SHA256). |
CBFSSTORAGE_EM_XTS_AES256_PBKDF2_HMAC_SHA256 | 0x2 | Use AES256 encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash. |
CBFSSTORAGE_EM_CUSTOM256_PBKDF2_HMAC_SHA256 | 0x3 | Use event-based custom 256-bit encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash.
256-bit (32-byte) block size. |
CBFSSTORAGE_EM_CUSTOM512_PBKDF2_HMAC_SHA256 | 0x4 | Use event-based custom 512-bit encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash.
512-bit (64-byte) block size. |
CBFSSTORAGE_EM_CUSTOM1024_PBKDF2_HMAC_SHA256 | 0x5 | Use event-based custom 1024-bit encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash.
1024-bit (128-byte) block size. |
CBFSSTORAGE_EM_CUSTOM256_CUSTOM_KEY_DERIVE | 0x23 | Use event-based custom 256-bit encryption with custom key derivation.
256-bit (32-byte) block size. |
CBFSSTORAGE_EM_CUSTOM512_CUSTOM_KEY_DERIVE | 0x24 | Use event-based custom 512-bit encryption with custom key derivation.
512-bit (64-byte) block size. |
CBFSSTORAGE_EM_CUSTOM1024_CUSTOM_KEY_DERIVE | 0x25 | Use event-based custom 1024-bit encryption with custom key derivation.
1024-bit (128-byte) block size. |
CBFSSTORAGE_EM_CUSTOM256_DIRECT_KEY | 0x43 | Use event-based custom 256-bit encryption with no key derivation.
256-bit (32-byte) block size. Useful for cases where the password is an identifier for an external key and should not be used for key derivation. |
CBFSSTORAGE_EM_CUSTOM512_DIRECT_KEY | 0x44 | Use event-based custom 512-bit encryption with no key derivation.
512-bit (64-byte) block size. Useful for cases where the password is an identifier for an external key and should not be used for key derivation. |
CBFSSTORAGE_EM_CUSTOM1024_DIRECT_KEY | 0x45 | Use event-based custom 1024-bit encryption with no key derivation.
1024-bit (128-byte) block size. Useful for cases where the password is an identifier for an external key and should not be used for key derivation. |
CBFSSTORAGE_EM_UNKNOWN | 0xFF | Unidentified or unknown encryption. |
Applications that use custom encryption must implement at least the DataDecrypt and DataEncrypt events; and certain custom encryption modes may also require that the HashCalculate or KeyDerive event be implemented as well. Please refer to the Encryption topic for more information.
The Password parameter specifies the password to use for encryption, if applicable.
The Compression parameter specifies the Compression behavior for files created (or overwritten) during the copy operation. Valid values are:
CBFSSTORAGE_CM_NONE | 0 | Don't use compression. |
CBFSSTORAGE_CM_DEFAULT | 1 | Use default compression (zlib). |
CBFSSTORAGE_CM_CUSTOM | 2 | Use event-based custom compression.
Compression level is not used. |
CBFSSTORAGE_CM_ZLIB | 3 | Use zlib compression.
Valid compression levels are 1-9. |
CBFSSTORAGE_CM_RLE | 4 | Use RLE compression.
Compression level is not used. |
Applications that use custom compression must the DataCompress and DataDecompress events. Please refer to the Compression topic for more information.
The CompressionLevel parameter specifies the compression level to use, if applicable.
The PagesPerBlock parameter specifies how many pages should be compressed as a single block, if applicable. Valid values are powers of 2 up to and including 128 (i.e., 2, 4, 8, 16, 32, 64, or 128); or 0, which is interpreted as "default" (currently 16 for both zlib and RLE). Larger values allow for more efficient compression; however, since a block must be decompressed (and, for writes, recompressed) anytime its data is accessed, larger values can also cause excessive slowdown, especially for random access.
Note: This method can only be called when Active is true, and cannot be called within events.