_makepath, _wmakepath
Nach oben zu stdlib.h - Index
Header-Datei
stdlib.h
Kategorie
Verzeichnisbearbeitungsroutinen
Prototyp
void _makepath(char *path, const char *drive, const char *dir, const char *name, const char *ext);
void _wmakepath(wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *name, const wchar_t *ext);
Beschreibung
Setzt Komponenten zu einem Pfadnamen zusammen.
_makepath erstellt einen Pfadnamen aus entsprechenden Komponenten. Der neue Pfadname entspricht der Form
X:\DIR\SUBDIR\NAME.EXT
wobei
drive |
= |
X: |
dir |
= |
\DIR\SUBDIR\ |
name |
= |
NAME |
ext |
= |
.EXT |
Ist drive leer oder NULL, wird kein Laufwerksbuchstabe in den Pfadnamen eingefügt. Fehlt der nachstehende Doppelpunkt (:), wird ein Doppelpunkt in den Pfadnamen eingefügt.
Ist dir leer oder NULL, wird keine Verzeichnisangabe in den Pfadnamen eingefügt. Fehlt der nachstehende Schrägstrich (\ oder /), wird ein umgekehrter Schrägstrich in den Pfadnamen eingefügt.
Ist name leer oder NULL, wird kein Dateiname in den Pfadnamen eingefügt.
Ist ext leer oder NULL, wird keine Erweiterung in den Pfadnamen eingefügt. Fehlt der führende Punkt (.), wird ein Punkt in den Pfadnamen eingefügt.
_makepath geht davon aus, dass in path ausreichend Platz für den erstellten Pfadnamen verfügbar ist. Die maximale Länge des Pfadnamens darf _MAX_PATH nicht überschreiten. _MAX_PATH ist in stdlib.h definiert.
Die Funktionen _makepath und _splitpath sind invertierbar. Wenn Sie einen Pfadnamen mit _splitpath aufteilen und dann die zurückgegebenen Elemente an _makepath übergeben, erhalten Sie wieder den ursprünglichen Pfadnamen.
Ist drive leer oder NULL, wird kein Laufwerksbuchstabe in den Pfadnamen eingefügt. Fehlt der nachstehende Doppelpunkt (:), wird ein Doppelpunkt in den Pfadnamen eingefügt.
Ist dir leer oder NULL, wird keine Verzeichnisangabe in den Pfadnamen eingefügt. Fehlt der nachstehende Schrägstrich (\ oder /), wird ein umgekehrter Schrägstrich in den Pfadnamen eingefügt.
Ist name leer oder NULL, wird kein Dateiname in den Pfadnamen eingefügt.
Ist ext leer oder NULL, wird keine Erweiterung in den Pfadnamen eingefügt. Fehlt der führende Punkt (.), wird ein Punkt in den Pfadnamen eingefügt.
_makepath geht davon aus, dass in path ausreichend Platz für den erstellten Pfadnamen verfügbar ist. Die maximale Länge des Pfadnamens darf _MAX_PATH nicht überschreiten. _MAX_PATH ist in stdlib.h definiert.
Die Funktionen _makepath und _splitpath sind invertierbar. Wenn Sie einen Pfadnamen mit _splitpath aufteilen und dann die zurückgegebenen Elemente an _makepath übergeben, erhalten Sie wieder den ursprünglichen Pfadnamen.
Beispiel
#include <dir.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char s[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char file[_MAX_FNAME];
char ext[_MAX_EXT];
getcwd(s,_MAX_PATH); /* Aktuelles Arbeitsverzeichnis ermitteln */
if (s[strlen(s)-1] != '\\')
strcat(s,"\\"); /* Umgekehrten Schrägstrich \ anhängen */
_splitpath(s,drive,dir,file,ext); /* String in seine Elemente
aufteilen */
strcpy(file,"DATA");
strcpy(ext,".TXT");
_makepath(s,drive,dir,file,ext); /* Alles wieder zusammensetzen */
puts(s); /* Ergebnis anzeigen */
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
_makepath |
+ |
|||
_wmakepath |
+ |