處理加密的檔案和目錄
程式設計人員或使用者可能會將目錄或檔案標示為加密。 標示為加密的檔案會使用目前的加密驅動程式,由 NTFS 檔案系統加密。 如果檔案在稍後的日期標示為未加密,則會解密並以純文字 (不安全) 狀態。
目錄本身不會加密。 相反地,根據預設,在「加密」目錄中,目錄中的所有新檔案都會在建立時加密。 如果使用者不想要加密檔案,使用者必須特別將新檔案的狀態變更為解密。 可看見加密的目錄。 若要讓其他使用者無法存取目錄,請使用存取控制的標準方法。
加密函式無法與 備份 API搭配使用。
若要加密新檔案,請使用 CreateFile 函式搭配 FILE_ATTRIBUTE_ENCRYPTED 旗標。 若要加密現有的檔案,請使用 EncryptFile 函式。 檔案中的所有資料流程都會加密。 如果檔案已經加密, EncryptFile 不會執行任何動作,但會傳回非零值,這表示成功。 如果壓縮檔案, EncryptFile 會在加密檔案之前解壓縮檔案。
若要解密加密的檔案,請使用 DecryptFile 函式。 如果檔案未加密, DecryptFile 不會執行任何動作,但會傳回指出成功的非零值。
EncryptionDisable 函式會停用或啟用所指示目錄及其檔案的加密。 它不會影響指定目錄下方子目錄的加密。
若要擷取檔案的加密狀態,請使用 FileEncryptionStatus 函式 。 或者,呼叫 GetFileAttributes 函式,並在傳回值中檢查 FILE_ATTRIBUTE_ENCRYPTED 旗標。
CopyFile 和 CopyFileEx 嘗試使用來源檔案加密中使用的金鑰來加密目的地檔案。 如果無法這麼做,這兩個函式都會嘗試使用預設金鑰來加密目的地檔案。 如果無法完成這兩種方法, CopyFile 和 CopyFileEx 就會失敗, 併發生ERROR_ENCRYPTION_FAILED 錯誤。 如果您想要CopyFileEx完成複製作業,即使目的地檔案無法加密,請在呼叫CopyFileEx的dwCopyFlags參數值中包含COPY_FILE_ALLOW_DECRYPTED_DESTINATION旗標。