EncryptFileA 函式 (winbase.h)

加密檔案或目錄。 檔案中的所有數據流都會加密。 在加密目錄中建立的所有新檔案都會加密。

語法

BOOL EncryptFileA(
  [in] LPCSTR lpFileName
);

參數

[in] lpFileName

要加密的檔案或目錄名稱。

呼叫端必須具有 FILE_READ_DATAFILE_WRITE_DATAFILE_READ_ATTRIBUTESFILE_WRITE_ATTRIBUTESSYNCHRONIZE 訪問許可權。 如需詳細資訊,請參閱 檔案安全性和訪問許可權

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

EncryptFile 函式需要對正在加密的檔案進行獨佔存取,如果另一個進程正在使用檔案,將會失敗。

如果檔案已經加密, EncryptFile 只會傳回非零值,這表示成功。 如果壓縮檔案, EncryptFile 會在加密檔案之前解壓縮檔案。

如果 lpFileName 指定唯讀檔案,則函式會失敗,而 GetLastError 會傳回 ERROR_FILE_READ_ONLY。 如果 lpFileName 指定包含唯讀檔案的目錄,則函式會成功,但目錄不會加密。

若要解密加密的檔案,請使用 DecryptFile 函式。

在 Windows 8、Windows Server 2012 及更新版本中,下列技術支援此函式。

技術 支援
伺服器消息塊 (SMB) 3.0 通訊協定 Yes
SMB 3.0 透明故障轉移 (TFO) No
具有向外延展檔案共用的SMB 3.0 (SO) No
叢集共用磁碟區文件系統 (CsvFS) No
彈性檔案系統 (ReFS) No
 

SMB 3.0 不支援具有持續可用性功能的共用上的EFS。

注意

winbase.h 標頭會將 EncryptFile 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll
API 集合 ext-ms-win-advapi32-encryptedfile-l1-1-0 (於 Windows 8)

另請參閱

DecryptFile

檔案加密

檔案管理功能