共用方式為


GetFullPathNameTransactedA 函式 (winbase.h)

[Microsoft強烈建議開發人員利用替代方法來達成應用程式的需求。 TxF 開發的許多案例都可以透過更簡單且更容易使用的技術來達成。 此外,未來版本的 Microsoft Windows 可能無法使用 TxF。 如需詳細資訊和 TxF 的替代方案,請參閱使用交易式 NTFS的替代專案

擷取指定檔案的完整路徑和檔名做為交易作業。

若要在沒有交易的情況下執行這項作業,請使用 GetFullPathName 函式。

如需檔案和路徑名稱的詳細資訊,請參閱 檔名、路徑和命名空間

語法

DWORD GetFullPathNameTransactedA(
  [in]  LPCSTR lpFileName,
  [in]  DWORD  nBufferLength,
  [out] LPSTR  lpBuffer,
  [out] LPSTR  *lpFilePart,
  [in]  HANDLE hTransaction
);

參數

[in] lpFileName

檔名。

此字串可以使用 short (8.3 表單) 或長檔名。 此字串可以是共用或磁碟區名稱。

檔案必須位於本機計算機上;否則,函式會失敗,且最後一個錯誤碼會設定為 ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE

[in] nBufferLength

要接收磁碟驅動器和路徑之 null 終止字串的緩衝區大小,TCHAR

[out] lpBuffer

緩衝區的指標,接收磁碟驅動器和路徑的 Null 終止字串。

[out] lpFilePart

接收路徑中最終檔名元件之位址的緩衝區指標(在 lpBuffer中)。 如果您不需要收到這項資訊,請指定 NULL

如果 lpBuffer 指向目錄而非檔案,lpFilePart 會收到 0(零)。

[in] hTransaction

交易的句柄。 此句柄是由 createTransaction 函式 傳回。

傳回值

如果函式成功,傳回值會是複製到 lpBuffer之字串的長度,TCHAR,不包含終止的 null 字元。

如果 lpBuffer 緩衝區太小而無法包含路徑,則傳回值會是大小,以 TCHAR為保留路徑和終止 Null 字元所需的緩衝區。

如果函式因任何其他原因而失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

言論

GetFullPathNameTransacted 合併目前磁碟驅動器和目錄的名稱與指定的檔名,以判斷指定檔案的完整路徑和檔名。 它也會計算完整路徑和檔名之檔名部分的位址。 此函式不會驗證產生的路徑和檔名是否有效,或它們看到相關聯磁碟區上的現有檔案。

共用和磁碟區名稱是 lpFileName的有效輸入。 例如,如果 test-2 是遠端電腦且 U: 是網路對應磁碟驅動器,下列清單會識別傳回的路徑和檔名:

  • 如果您指定 “\\test-2\q$\lh” 傳回的路徑為 “\\test-2\q$\lh”
  • 如果您指定 “\\?\UNC\test-2\q$\lh” 傳回的路徑是 “\\?\UNC\test-2\q$\lh”
  • 如果您指定 “U:” 傳回的路徑為 “U:\”
GetFullPathNameTransacted 不會轉換指定的檔名,lpFileName。 如果指定的檔名存在,您可以使用 GetLongPathNameTransactedGetLongPathNameGetShortPathName 分別轉換成長路徑名稱或短路徑名稱。

如果傳回值大於 nBufferLength中指定的值,您可以使用足以保存路徑的緩衝區再次呼叫 函式。 如需此案例的範例,以及針對動態配置使用零長度緩衝區,請參閱一節。

Note 雖然此案例中的傳回值是包含終止 Null 字元的長度,但成功時的傳回值不包含計數中的終止 Null 字元。
 
在 Windows 8 和 Windows Server 2012 中,下列技術支援此功能。
科技 支援
伺服器消息塊 (SMB) 3.0 通訊協定
SMB 3.0 透明故障轉移 (TFO)
具有向外延展檔案共用的SMB 3.0(SO)
叢集共用磁碟區檔案系統 (CsvFS)
復原檔案系統 (ReFS)
 

SMB 3.0 不支援 TxF。

注意

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

要求

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

另請參閱

檔案管理功能

GetFullPathName

GetLongPathNameTransacted

GetShortPathName

GetTempPath

SearchPath

交易式NTFS