Compartilhar via


_fullpath, _wfullpath

Cria um absoluta ou um nome de caminho completo para o nome do caminho relativo especificado.

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

Parâmetros

  • absPath
    Ponteiro para um buffer que contém o absoluta ou o nome do caminho completo, ou NULL.

  • relPath
    Nome do caminho relativo.

  • maxLength
    Comprimento máximo do buffer do nome de caminho absoluto (absPath). Esse comprimento é em bytes para _fullpath mas em caracteres amploswchar_t() para _wfullpath.

Valor de retorno

Cada uma dessas funções retorna um ponteiro para um buffer que contém o nome do caminho absoluto (absPath). Se houver um erro (por exemplo, se o valor transmitido em relPath inclui uma letra de unidade que não é válido ou não pode ser localizada, ou se o comprimento do nome de caminho absoluta criado (absPath) é maior do que maxLength), a função retornará NULL.

Comentários

A função de _fullpath expande o nome de caminho relativa em relPath a seu totalmente qualificado ou caminho absoluta e armazena esse nome em absPath*.* Se absPath for NULL, malloc é usada para atribuir um buffer de comprimento suficiente para conter o nome de caminho. É responsabilidade do chamador liberar esse buffer. Um nome de caminho especifica um caminho relativo para outro local atual (como o diretório de trabalho atual: “."). Um nome de caminho absoluto é a expansão de um nome de caminho relativo que indica o caminho inteiro exigida para alcançar o local desejado da raiz do sistema de arquivos. Ao contrário de _makepath, _fullpath pode ser usado para obter o nome de caminho absoluto para os caminhos relativosrelPath() que incluem “. /” ou “. /” em seus nomes.

Por exemplo, para usar rotinas de tempo de execução C, o aplicativo deve incluir os arquivos de cabeçalho que contêm as declarações para as rotinas. Cada arquivo de cabeçalho inclui referências de instrução o local do arquivo em um modo relativo (o diretório de trabalho de aplicativo):

#include <stdlib.h>

quando o caminho absoluto (local real do sistema de arquivos) do arquivo poderia ser:

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

_fullpath controla automaticamente argumentos de cadeia de caracteres de multibyte- caracteres conforme apropriado, confirmando sequências de multibyte- caractere de acordo com a página de código de multibyte atualmente em uso. _wfullpath é uma versão de ampla caractere de _fullpath; os argumentos de cadeia de caracteres a _wfullpath são cadeias de caracteres de ampla caractere. _wfullpath e _fullpath se comportam idêntica exceto que _wfullpath não trata as cadeias de caracteres de multibyte- caractere.

Se _DEBUG e _CRTDBG_MAP_ALLOC ambos são definidas, as chamadas para _fullpath e _wfullpath são substituídos por chamadas a _fullpath_dbg e a _wfullpath_dbg para permitir depuração alocações de memória. Para obter mais informações, consulte _fullpath_dbg, _wfullpath_dbg.

Essa função invoca o manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro, se maxlen é menor ou igual a 0. Se a execução puder continuar, essa função definirá errno como EINVAL e retornará NULL.

Mapeamentos da rotina de texto genérico

Rotina Tchar.h

_UNICODE e _MBCS não definidos

_MBCS definido

_UNICODE definido

_tfullpath

_fullpath

_fullpath

_wfullpath

Se o buffer de absPath é NULL, _fullpath chama malloc para alocar um buffer e ignora o argumento de maxLength . É responsabilidade do chamador desaloque esse buffer (usando livre) conforme apropriado. Se o argumento de relPath especifica uma unidade de disco, o diretório atual dessa unidade é combinado com o caminho.

Requisitos

Função

Cabeçalho necessário

_fullpath

<stdlib.h>

_wfullpath

<stdlib.h> ou <wchar.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

// 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" );
}
  

Equivalência do .NET Framework

System::IO::File::Create

Consulte também

Referência

Manipulação de arquivos

_getcwd, _wgetcwd

_getdcwd, _wgetdcwd

_makepath, _wmakepath

_splitpath, _wsplitpath