共用方式為


_fullpath _wfullpath

建立 [絕對] 或 [完整路徑名稱做為指定的相對路徑名稱。

char *_fullpath( 
   char *absPath,
   const char *relPath,
   size_t maxLength 
);
wchar_t *_wfullpath( 
   wchar_t *absPath,
   const wchar_t *relPath,
   size_t maxLength 
);

參數

  • absPath
    指標,此緩衝區包含絕對或完整路徑名稱,則傳回 NULL。

  • relPath
    相對路徑名稱。

  • maxLength
    絕對路徑名稱的緩衝區的最大長度 (absPath)。 這個長度是以位元組為單位的_fullpath但以寬字元為單位 (wchar_t) 的_wfullpath。

傳回值

每個函式傳回的指標,此緩衝區包含絕對路徑名稱 (absPath)。 如果發生錯誤 (比方說,如果傳入的值時,才relPath包含的磁碟機代號不正確或找不到,或者如果建立的絕對路徑名稱的長度 (absPath) 大於maxLength),函式會傳回NULL。

備註

_fullpath函式會展開中的相對路徑名稱relPath為完整或絕對路徑和存放區中這命名absPath*.* 如果absPath為 NULL, malloc用來配置足夠的長度,以便保留路徑名稱的緩衝區。 是以釋出這個緩衝區的呼叫端的責任。 相對路徑名稱指定到另一個位置的路徑,從目前所在位置 (例如目前的工作目錄:"。")。 絕對路徑名稱是擴充的說明,才能達到想要的位置從根目錄檔案系統的完整路徑的相對路徑名稱。 不像_makepath, _fullpath可以用來取得相對路徑的絕對路徑名稱 (relPath),包括 「。 /"../"在名稱中。

比方說,若要使用 c 執行階段常式,應用程式必須包括包含常式宣告的標頭檔。 每個標頭檔包含陳述式的參考檔案的位置相對的方式 (從應用程式的工作目錄):

#include <stdlib.h>

當可能是檔案的絕對路徑 (實體檔案系統位置):

\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h

_fullpath 會自動處理多位元組字元字串引數視需要辨識多位元組字元順序,根據目前使用中的多位元組字碼頁。 _wfullpath 寬字元版本的_fullpath。 字串引數去_wfullpath 是寬字元字串。 _wfullpath 與_fullpath 運作方式完全相同,除了_wfullpath 不處理多位元組字元字串。

如果_DEBUG 和_CRTDBG_MAP_ALLOC 是這兩個定義,呼叫_fullpath和_wfullpath已由呼叫_fullpath_dbg和_wfullpath_dbg以便進行偵錯記憶體配置。 如需詳細資訊,請參閱 _fullpath_dbg、 _wfullpath_dbg

如所述,這個函式叫用無效的參數處理常式中, 參數驗證,如果maxlen小於或等於 0。 如果執行,則允許繼續執行,這個函式會將errno到EINVAL ,並傳回NULL。

泛用文字常式對應

Tchar.h 常式

_Unicode 之後,未定義的 _MBCS

定義的 _MBCS

定義 _unicode 之後

_tfullpath

_fullpath

_fullpath

_wfullpath

如果absPath緩衝區NULL, _fullpath呼叫 malloc 配置的緩衝區,並忽略maxLength引數。 呼叫者必須負責解除配置此緩衝區 (使用免費) 視需要。 如果relPath引數會指定磁碟機、 磁碟機的目前的目錄加上路徑。

需求

Function

所需的標頭

_fullpath

<stdlib.h>

_wfullpath

<stdlib.h> 或者 <wchar.h>

如需相容性資訊,請參閱相容性在簡介中。

範例

// crt_fullpath.c
// This program demonstrates how _fullpath
// creates a full path from a partial path.
 
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <direct.h>

void PrintFullPath( char * partialPath )
{
   char full[_MAX_PATH];
   if( _fullpath( full, partialPath, _MAX_PATH ) != NULL )
      printf( "Full path is: %s\n", full );
   else
      printf( "Invalid path\n" );
}

int main( void )
{
   PrintFullPath( "test" );
   PrintFullPath( "\\test" );
   PrintFullPath( "..\\test" );
}
  

.NET Framework 對等用法

System::IO::File:: 建立

請參閱

參考

檔案處理

_getcwd _wgetcwd

_getdcwd _wgetdcwd

_makepath _wmakepath

_splitpath _wsplitpath