Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Crea un nome di percorso assoluto o completo per il nome di percorso relativo specificato.
Sintassi
char *_fullpath(
char *absPath,
const char *relPath,
size_t maxLength
);
wchar_t *_wfullpath(
wchar_t *absPath,
const wchar_t *relPath,
size_t maxLength
);
Parametri
absPath
Puntatore a un buffer contenente il nome del percorso assoluto o completo o NULL.
relPath
Nome del percorso relativo.
maxLength
Lunghezza massima del buffer del nome del percorso assoluto (absPath). Tale lunghezza è espressa in byte per _fullpath ma in caratteri wide (wchar_t) per _wfullpath.
Valore restituito
Ognuna di queste funzioni restituisce un puntatore a un buffer contenente il nome del percorso assoluto (absPath). Se si verifica un errore ( ad esempio, se il valore passato relPath include una lettera di unità non valida o non è possibile trovare o se la lunghezza del nome del percorso assoluto creato (absPath) è maggiore di maxLength), la funzione restituisce NULL.
Osservazioni:
La _fullpath funzione espande il nome del percorso relativo in relPath fino al percorso completo o assoluto e archivia questo nome in absPath. Se absPath è NULL, malloc viene usato per allocare un buffer di lunghezza sufficiente per contenere il nome del percorso. È responsabilità del chiamante liberare questo buffer. Un nome percorso relativo specifica un percorso verso un'altra posizione dal percorso corrente, ad esempio la directory di lavoro corrente: .. Un nome di percorso assoluto è l'espansione di un nome di percorso relativo che indica il percorso intero necessario per raggiungere la posizione desiderata dalla radice del file system. A differenza di _makepath, _fullpath può essere usato per ottenere il nome del percorso assoluto per i percorsi relativi (relPath) che includono ./ o ../ nei relativi nomi.
Per usare le routine di runtime C, ad esempio, l'applicazione deve includere i file di intestazione contenenti le dichiarazioni per le routine. Ogni direttiva del file #include di intestazione fa riferimento al percorso del file in modo relativo (dalla directory di lavoro dell'applicazione):
#include <stdlib.h>
e il percorso assoluto (percorso effettivo nel file sytem) del file potrebbe essere:
\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
_fullpath gestisce automaticamente gli argomenti stringa di caratteri multibyte in base alle esigenze, riconoscendo le sequenze di caratteri multibyte in base alla tabella codici multibyte attualmente in uso. _wfullpath è una versione a caratteri wide di _fullpath. Gli argomenti stringa per _wfullpath sono stringhe di caratteri wide. _wfullpath e _fullpath si comportano in modo identico, ad eccezione del fatto che _wfullpath non gestisce stringhe di caratteri multibyte.
Se _DEBUG e _CRTDBG_MAP_ALLOC sono entrambi definiti, le chiamate a _fullpath e _wfullpath vengono sostituite dalle chiamate a _fullpath_dbg e _wfullpath_dbg, per consentire di eseguire il debug delle allocazioni di memoria. Per altre informazioni, vedere _fullpath_dbge _wfullpath_dbg.
Questa funzione richiama il gestore di parametri non validi, come descritto in Convalida dei parametri, se maxlen è minore o uguale a 0. Se l'esecuzione può continuare, la funzione imposta errno suEINVAL e restituisce NULL.
Mapping di routine di testo generico
Tchar.h routine |
_UNICODE and _MBCS non definito |
_MBCS definito |
_UNICODE definito |
|---|---|---|---|
_tfullpath |
_fullpath |
_fullpath |
_wfullpath |
Se il absPath buffer è NULL, _fullpath chiama malloc per allocare un buffer e ignora l'argomento maxLength . È responsabilità del chiamante deallocare questo buffer (usando free) in base alle esigenze. Se l'argomento relPath specifica un'unità disco, la directory corrente dell'unità viene combinata con il percorso.
Requisiti
| Funzione | Intestazione obbligatoria |
|---|---|
_fullpath |
<stdlib.h> |
_wfullpath |
<stdlib.h> oppure <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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
Vedi anche
Gestione dei file
_getcwd, _wgetcwd
_getdcwd, _wgetdcwd
_makepath, _wmakepath
_splitpath, _wsplitpath