_fullpath
, _wfullpath
Créer un nom de chemin absolu ou complet pour le nom de chemin relatif spécifié.
Syntaxe
char *_fullpath(
char *absPath,
const char *relPath,
size_t maxLength
);
wchar_t *_wfullpath(
wchar_t *absPath,
const wchar_t *relPath,
size_t maxLength
);
Paramètres
absPath
Pointeur vers une mémoire tampon contenant le nom de chemin d'accès absolu ou complet, ou NULL
.
relPath
Nom de chemin d’accès relatif.
maxLength
Longueur maximale de la mémoire tampon du nom de chemin d'accès absolu (absPath
). Cette longueur est représentée en octets pour _fullpath
mais en caractères larges (wchar_t
) pour _wfullpath
.
Valeur retournée
Chacune de ces fonctions retourne un pointeur vers une mémoire tampon contenant le nom de chemin absolu (absPath
). S’il existe une erreur (par exemple, si la valeur passée relPath
inclut une lettre de lecteur qui n’est pas valide ou introuvable, ou si la longueur du nom de chemin absolu créé (absPath
) est supérieure maxLength
à ), la fonction renvoie NULL
.
Notes
La _fullpath
fonction développe le nom du chemin relatif dans relPath
son chemin complet ou absolu et stocke ce nom dans absPath
. Si absPath
c’est NULL
le cas, malloc
est utilisé pour allouer une mémoire tampon de longueur suffisante pour contenir le nom du chemin d’accès. Il incombe à l’appelant de libérer cette mémoire tampon. Un nom de chemin relatif spécifie un chemin d’accès à un autre emplacement à partir de l’emplacement actuel (par exemple, le répertoire de travail actuel : .
). Un nom de chemin absolu est l’extension d’un nom de chemin relatif qui indique le chemin complet requis pour atteindre l’emplacement souhaité à partir de la racine du système de fichiers. Contrairement _makepath
à , _fullpath
peut être utilisé pour obtenir le nom absolu du chemin d’accès pour les chemins relatifs (relPath
) qui incluent ./
ou ../
dans leurs noms.
Par exemple, pour utiliser les routines du runtime C, l’application doit inclure les fichiers d’en-tête qui contiennent les déclarations pour les routines. Chaque directive de fichier #include
d’en-tête fait référence à l’emplacement du fichier de manière relative (à partir du répertoire de travail de l’application) :
#include <stdlib.h>
quand le chemin absolu (emplacement de système de fichiers actuel) du fichier peut être :
\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
_fullpath
gère automatiquement les arguments de chaîne de caractères multioctets si nécessaire, en identifiant les séquences de caractères multioctets en fonction de la page de codes multioctets en cours d’utilisation. _wfullpath
est une version à caractères larges de _fullpath
; les arguments de chaîne de _wfullpath
sont des chaînes à caractères larges. _wfullpath
et _fullpath
se comportent de la même façon, sauf que _wfullpath
cela ne gère pas les chaînes de caractères multioctets.
Si _DEBUG
et _CRTDBG_MAP_ALLOC
sont tous les deux définis, les appels vers _fullpath
et _wfullpath
sont remplacés par des appels vers _fullpath_dbg
et _wfullpath_dbg
, pour vous permettre de déboguer des allocations de mémoire. Pour plus d’informations, consultez _fullpath_dbg
, _wfullpath_dbg
.
Cette fonction appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres, s’il maxlen
est inférieur ou égal à 0. Si l'exécution est autorisée à se poursuivre, cette fonction affecte la valeur errno
à EINVAL
et retourne NULL
.
Mappages de routines de texte générique
Routine Tchar.h |
_UNICODE and _MBCS non défini |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tfullpath |
_fullpath |
_fullpath |
_wfullpath |
Si la absPath
mémoire tampon est NULL
, _fullpath
les appels malloc
pour allouer une mémoire tampon et ignorent l’argument maxLength
. Il incombe à l’appelant de libérer cette mémoire tampon (en utilisant free
) selon les besoins. Si l’argument relPath
spécifie un lecteur de disque, le répertoire actuel de ce lecteur est combiné avec le chemin.
Spécifications
Fonction | En-tête requis |
---|---|
_fullpath |
<stdlib.h> |
_wfullpath |
<stdlib.h> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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" );
}
Full path is: C:\Documents and Settings\user\My Documents\test
Full path is: C:\test
Full path is: C:\Documents and Settings\user\test
Voir aussi
Gestion des fichiers
_getcwd
, _wgetcwd
_getdcwd
, _wgetdcwd
_makepath
, _wmakepath
_splitpath
, _wsplitpath