setFileShortNameA 函式 (winbase.h)

設定指定檔案的簡短名稱。 檔案必須位於NTFS檔系統磁碟區上。

語法

BOOL SetFileShortNameA(
  [in] HANDLE hFile,
  [in] LPCSTR lpShortName
);

參數

[in] hFile

檔案的句柄。 檔案必須以GENERIC_ALL訪問許可權或 GENERIC_WRITEDELETE 開啟,並使用 FILE_FLAG_BACKUP_SEMANTICS| 檔案屬性開啟。

[in] lpShortName

字串的指標,指定檔案的簡短名稱。

如果 hFile 參數指定的檔案存在,則指定空的 (長度為零) 字串將會移除簡短的檔名。 如果簡短檔名不存在,則函式不會執行任何動作並傳回成功。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援此行為。 參數必須包含一或多個字元的有效字串。

傳回值

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

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastErrorGetLastError 可能會傳回此函式特有的下列其中一個錯誤碼。

傳回碼 Description
ERROR_ALREADY_EXISTS
指定的簡短名稱不是唯一的。
ERROR_INVALID_PARAMETER
指定的檔案已以區分大小寫模式開啟,或指定的簡短名稱無效。

備註

此函式的呼叫端必須具有 SE_RESTORE_NAME 許可權。 如需詳細資訊,請參閱 以特殊許可權執行

在 Windows 8 和 Windows Server 2012 中,下列技術支援此函式。

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

SMB 3.0 不支援具有持續可用性功能的共用上的簡短名稱。 不建議在 CsvF 上使用簡短名稱。

注意

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

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

檔案管理功能

GetShortPathName