_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 функция разверните имя относительного пути in relPath в полное или абсолютного пути и сохраняет это имя in absPath*.* If absPath значение null, malloc используется, чтобы выделить буфер достаточной длины для хранения имя пути.Вызывающий объект отвечает освободить этот буфер.Имя относительного пути задает путь к другому расположению от текущего расположения (как текущая рабочая папка: символ ". ").Абсолютный путь расширение относительного пути состояния полный путь, необходимо достигло требуемое расположение от корня файловой системы.Непохоже _makepath" _fullpath может использоваться для получения абсолютный путь для относительных путей (relPath), включающее ". /" или ". /" в своих именах.

Например, чтобы использовать процедур времени выполнения языка c, приложение должно включать файлы заголовка, содержащих объявления для подпрограмм.Каждый файл заголовка содержит ссылки выписки расположение файла в относительном образом (из рабочей папки приложения):

#include <stdlib.h>

если абсолютный путь (фактическое местоположение в файловой системе) файла может быть:

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

_fullpath автоматически обрабатывает аргументы характерной черты, узнающ последовательности многобайтового символов в соответствии с многобайтовой кодовой странице в настоящий момент используется._wfullpath версия расширенных символов _fullpath; аргументы строки _wfullpathхарактерные черты._wfullpath и _fullpathпоступайте идентичны за исключением того, что _wfullpathне обрабатывает характерные черты.

If _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 buffer NULL" _fullpath вызовы malloc чтобы выделить буфер, а не обрабатывает maxLength аргумент.Обязанностью вызывающей стороны для отмены распределению этот буфер (использование free) соответственно.Если relPath аргумент определяет дисковый накопитель, текущая папка данного диска объединяется с путем.

Требования

Функция

Обязательный заголовок

_fullpath

<stdlib.h>

_wfullpath

<stdlib.h> OR <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:: Ввода-вывода:: файл:: Создать

См. также

Ссылки

Обработка файла

_getcwd, _wgetcwd

_getdcwd, _wgetdcwd

_makepath, _wmakepath

_splitpath, _wsplitpath