Se recomienda usar Visual Studio 2017

_makepath, _wmakepath

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Crear un nombre de ruta de acceso de componentes. Existen versiones más seguras de estas funciones; consulte _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   
);  

Parámetros

path
Búfer de la ruta de acceso completa.

drive
Contiene una letra (A, B y así sucesivamente) correspondiente a la unidad deseada y un signo de dos puntos final opcional. _makepathInserta los dos puntos automáticamente en la ruta de acceso compuesto si se encuentra. Si drive es NULL o apunta a una cadena vacía, letra de unidad no aparecerá en la composición path cadena.

dir
Contiene la ruta de acceso de directorios, sin incluir el designador de unidad o el nombre del archivo. La barra diagonal final es opcional y una barra diagonal (/) o una barra diagonal inversa (\) o ambos pueden utilizarse en un único dir argumento. Si no hay barra diagonal (/ o \) se especifica, se inserta automáticamente. Si dir es NULL o apunta a una cadena vacía, ninguna ruta de acceso de directorio se inserta en la composición path cadena.

fname
Contiene el nombre de archivo base sin ninguna extensión de nombre de archivo. Si fname es NULL o apunta a una cadena vacía, ningún nombre de archivo se inserta en la composición path cadena.

ext
Contiene la extensión de nombre de archivo real, con o sin un punto (.). _makepathInserta el período automáticamente si no aparece en ext. Si ext es NULL o apunta a una cadena vacía, sin extensión se inserta en la composición path cadena.

El _makepath función crea una cadena compuesta de la ruta de acceso de componentes individuales, almacena el resultado en path. La path puede incluir un letra de unidad, la ruta del directorio, el nombre de archivo y la extensión de nombre de archivo. _wmakepath es una versión con caracteres anchos de _makepath; los argumentos a _wmakepath son cadenas de caracteres anchos. Por lo demás, _wmakepath y _makepath se comportan de forma idéntica.

Nota de seguridad utilizar una cadena terminada en null. Para evitar la saturación del búfer, la cadena terminada en null no debe superar el tamaño de la path búfer. _makepathAsegúrese de que no supera la longitud de la cadena de ruta de acceso compuestos _MAX_PATH. Para obtener más información, vea Avoiding Buffer Overruns(Evitar saturaciones del búfer).

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tmakepath_makepath_makepath_wmakepath

El path argumento debe apuntar a un búfer vacío suficientemente grande para contener la ruta de acceso completa. La composición path no debe ser mayor que el _MAX_PATH constante, definida en Stdlib.h.

Si la ruta de acceso es NULL, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. Además, errno está establecido en EINVAL. NULLse permiten valores para todos los demás parámetros.

RutinaEncabezado necesario
_makepath<stdlib.h>
_wmakepath<stdlib.h> o <wchar.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

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

Path created with _makepath: c:\sample\crt\makepath.c  
  
Path extracted with _splitpath:  
  Drive: c:  
  Dir: \sample\crt\  
  Filename: makepath  
  Ext: .c  

System::IO::file:: crear

Control de archivos
_fullpath, _wfullpath
_splitpath, _wsplitpath
_makepath_s, _wmakepath_s

Mostrar: