共用方式為


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 通訊協定 是的
SMB 3.0 透明故障轉移 (TFO)
具有向外延展檔案共用的SMB 3.0(SO)
叢集共用磁碟區檔案系統 (CsvFS)
復原檔案系統 (ReFS)
 

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

注意

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

要求

要求 價值
最低支援的用戶端 Windows XP Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Advapi32.lib
DLL Advapi32.dll
API 集 ext-ms-win-advapi32-encryptedfile-l1-1-0 (在 Windows 8 中引進)

另請參閱

DecryptFile

檔案加密

檔案管理功能