Udostępnij za pośrednictwem


_makepath, _wmakepath

Utwórz nazwę ścieżki ze składników.Bezpieczniejsze wersje te funkcje są dostępne; see _makepath_s, _wmakepath_s.

void _makepath(
   char *path,
   const char *drive,
   const char *dir,
   const char *fname,
   const char *ext 
);
void _wmakepath(
   wchar_t *path,
   const wchar_t *drive,
   const wchar_t *dir,
   const wchar_t *fname,
   const wchar_t *ext 
);

Parametry

  • path
    Bufor pełną ścieżkę.

  • drive
    Zawiera litery (A, B i tak dalej) odpowiadającą żądany dysk i opcjonalne końcowe dwukropka._makepathWstawia dwukropek automatycznie ścieżki kompozytowej jeżeli go brakuje.Jeśli drive jest NULL lub punktów na pusty ciąg, bez litery dysku pojawia się w kompozytowych path ciąg znaków.

  • dir
    Zawiera ścieżkę katalogów, nie włączając faktyczny dysku lub rzeczywistą nazwę pliku.Znaku kreski ułamkowej jest opcjonalny i ukośnika (/) lub kreski ułamkowej odwróconej (\) lub oba może być używany w jednym dir argument.Jeśli nie ukośnika (/ lub \) jest określony, jest wstawiany automatycznie.Jeśli dir jest NULL lub w kompozytowych dodaje się punkty na pusty ciąg, żadna ścieżka katalogu path ciąg znaków.

  • fname
    Zawiera nazwę pliku podstawowego bez żadnych rozszerzeń nazw plików.Jeśli fname jest NULL lub w kompozytowych dodaje się punkty na pusty ciąg, żadnej nazwy pliku path ciąg znaków.

  • ext
    Zawiera rozszerzenie nazwy pliku rzeczywiste, z lub bez kropki (.)._makepathautomatycznie wstawia okresu, jeśli nie są wyświetlane w ext.Jeśli ext jest NULL lub w kompozytowych dodaje się punkty na pusty ciąg, bez rozszerzenia path ciąg znaków.

Uwagi

_makepath Funkcja tworzy ciąg ścieżki kompozytowej z poszczególnych składników, przechowywanie wyników w path.path Może zawierać literę dysku, ścieżki katalogu, nazwę pliku i rozszerzenie nazwy pliku._wmakepathjest to wersja szerokich znaków _makepath; argumenty do _wmakepath są ciągami szerokich znaków._wmakepathi _makepath zachowują się identycznie inaczej.

Uwaga zabezpieczeń użyć ciąg zakończony znakiem null.W celu uniknięcia przepełnienia buforu, ciąg zakończony znakiem null nie może przekraczać rozmiaru path buforu._makepathzapewnienia nie przekracza długość ciągu ścieżki kompozytowej _MAX_PATH.Aby uzyskać więcej informacji, zobacz Overruns buforu unikanie.

Tekst rodzajowy rutynowych mapowania

Procedura TCHAR.h

_UNICODE i _MBCS nie zdefiniowane

_MBCS, definicja

_UNICODE, definicja

_tmakepath

_makepath

_makepath

_wmakepath

path Argument musi wskazywać pusty buforu wystarczająco duży, aby pomieścić pełną ścieżkę.Projekt wstępny path musi być większa niż _MAX_PATH stałą, zdefiniowane w plik Stdlib.h.

Jeśli ścieżka jest NULL, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Ponadto errno jest ustawiona na EINVAL.NULLwartości są dozwolone dla wszystkich innych parametrów.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_makepath

<stdlib.h>

_wmakepath

<stdlib.h> lub <wchar.h>

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

Przykład

// crt_makepath.c
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
   // Note: _makepath is deprecated; consider using _makepath_s instead
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext ); // C4996
   // Note: _splitpath is deprecated; consider using _splitpath_s instead
   printf( "Path extracted with _splitpath:\n" );
   printf( "  Drive: %s\n", drive );
   printf( "  Dir: %s\n", dir );
   printf( "  Filename: %s\n", fname );
   printf( "  Ext: %s\n", ext );
}
  

Odpowiednik w programie .NET Framework

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

Zobacz też

Informacje

Obsługa plików

_fullpath, _wfullpath

_splitpath, _wsplitpath

_makepath_s, _wmakepath_s