checkNameLegalDOS8Dot3A 函式 (winbase.h)

判斷指定的名稱是否可以用來在 FAT 檔案系統上建立檔案。

語法

BOOL CheckNameLegalDOS8Dot3A(
  [in]            LPCSTR lpName,
  [out, optional] LPSTR  lpOemName,
  [in]            DWORD  OemNameSize,
  [out, optional] PBOOL  pbNameContainsSpaces,
  [out]           PBOOL  pbNameLegal
);

參數

[in] lpName

檔名,格式為 8.3。

[out, optional] lpOemName

緩衝區的指標,接收對應至 Name 的 OEM 字串。 此參數可以是 Null

[in] OemNameSize

lpOemName 緩衝區的大小,以字元為單位。 如果 lpOemNameNULL,此參數必須是 0 (零) 。

[out, optional] pbNameContainsSpaces

指出名稱是否包含空格。 此參數可以是 Null。 如果名稱不是有效的 8.3 FAT 檔案系統名稱,則未定義此參數。

[out] pbNameLegal

如果函式成功,此參數會指出當目前的 OEM 代碼頁套用至檔名時,檔名是否為有效的 8.3 FAT 檔名。

傳回值

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

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

備註

此函式可用來判斷檔名是否可以傳遞至16位 Windows 應用程式或 MS-DOS 型應用程式。

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

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

請注意,SMB 3.0 不支援具有持續可用性功能的共用簡短名稱,因此函式一律會傳回零 (失敗) 。

注意

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

規格需求

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

另請參閱

檔案管理功能

GetOEMCP