Udostępnij za pośrednictwem


_fullpath, _wfullpath

Tworzy ścieżkę bezwzględną lub pełnej nazwy nazwy określonej ścieżki względnej.

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

Parametry

  • absPath
    Wskaźnik do bufora zawierającego ścieżkę bezwzględną lub Pełna nazwa lub wartość NULL.

  • relPath
    Nazwa ścieżki względnej.

  • maxLength
    Maksymalna długość buforu nazwy ścieżki bezwzględnej (absPath).Ta długość jest w bajtach dla _fullpath , ale w szerokości znaków (wchar_t) dla _wfullpath.

Wartość zwracana

Każda z tych funkcji zwraca wskaźnik do bufora zawierającego nazwę ścieżki bezwzględnej (absPath).Jeśli błąd (na przykład, jeśli wartość przekazana w relPath zawiera litery dysku, która nie jest prawidłowy lub nie można znaleźć, lub jeśli długość nazwy utworzone ścieżki bezwzględnej (absPath) jest większa niż maxLength), funkcja zwraca NULL.

Uwagi

_fullpath Funkcja rozszerza nazwy ścieżki względnej w relPath pełni kwalifikowana lub bezwzględną ścieżkę i magazyny, to nazwa w absPath*.* Jeśli absPath ma wartość NULL, malloc jest używana do alokowania bufor o długości wystarczającej do przechowywania nazwy ścieżki.Jest odpowiedzialny zwolnić buforu wywołującego.Nazwa ścieżki względne określa ścieżkę do innej lokalizacji w bieżącej lokalizacji (takich jak bieżący katalog roboczy: ".").Nazwa ścieżki bezwzględnej jest rozszerzenia nazwy ścieżki względnej, który stanowi całej ścieżki, wymaganych do osiągnięcia w żądane miejsce z katalogu głównego systemu plików.W odróżnieniu od _makepath, _fullpath może służyć do uzyskiwania nazwę ścieżki bezwzględnej ścieżki względne (relPath) zawierające ". /"lub"../ "w ich nazwy.

Na przykład aby użyć procedury uruchomieniowej C, wniosek musi zawierać pliki nagłówka, zawierające deklaracji w zakresie procedur.Każdy plik nagłówkowy zawierają odniesienie do instrukcji lokalizację pliku w sposób względne (z katalog roboczy aplikacji):

#include <stdlib.h>

Kiedy ścieżką bezwzględną (rzeczywistym położeniem systemowym pliku) pliku może być:

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

_fullpath automatycznie obsługuje argumentów łańcuch znaków wielobajtowych, odpowiednio, uznając sekwencje znaków wielobajtowych, zgodnie z obecnie używanej strony kodowej wielobajtowych._wfullpath jest to wersja szerokich znaków _fullpath; argumenty ciąg _wfullpath są ciągami szerokich znaków._wfullpath i _fullpath zachowują się identycznie, z wyjątkiem _wfullpath nie obsługuje ciągów znaków wielobajtowych.

Jeśli _DEBUG i _CRTDBG_MAP_ALLOC są zdefiniowane, wywołania _fullpath i _wfullpath zastępuje się przez wywołania _fullpath_dbg i _wfullpath_dbg aby umożliwić debugowanie alokacji pamięci.Aby uzyskać więcej informacji, zobacz _fullpath_dbg, _wfullpath_dbg.

Funkcja ta wywołuje obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru, jeśli maxlen jest mniejsza niż lub równa 0.Jeśli wykonanie może kontynuować, ta funkcja ustawia errno do EINVAL i zwraca NULL.

Tekst rodzajowy rutynowych mapowania

Procedura TCHAR.h

_UNICODE i _MBCS nie zdefiniowane

_MBCS, definicja

_UNICODE, definicja

_tfullpath

_fullpath

_fullpath

_wfullpath

Jeśli absPath bufor jest NULL, _fullpath wywołania malloc przydzielić buforu i ignoruje maxLength argument.Obowiązek deallocate tego buforu wywołującego (za pomocą wolnego) jako właściwe.Jeśli relPath argument określa dysk, bieżący katalog tego dysku jest połączona ze ścieżką.

Wymagania

Funkcja

Wymaganego nagłówka

_fullpath

<stdlib.h>

_wfullpath

<stdlib.h> lub <wchar.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Przykład

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

Odpowiednik w programie .NET Framework

System::IO::File:: Utwórz

Zobacz też

Informacje

Obsługa plików

_getcwd, _wgetcwd

_getdcwd, _wgetdcwd

_makepath, _wmakepath

_splitpath, _wsplitpath