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