共用方式為


SetFileShortNameA 函式 (winbase.h)

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

語法

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

參數

[in] hFile

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

[in] lpShortName

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

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

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

傳回值

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

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

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

言論

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

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

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

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

注意

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

要求

要求 價值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

檔案管理功能

GetShortPathName