_splitpath, _wsplitpath

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu stdlib.h - Index


Header-Datei

stdlib.h

Kategorie

Verzeichnisbearbeitungsroutinen

Prototyp

void _splitpath(const char *path, char *drive, char *dir, char *name, char *ext);

void _wsplitpath(const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *name, wchar_t *ext);

Beschreibung

Teilt einen vollständigen Pfadnamen in seine Komponenten auf.

_splitpath übernimmt in path den vollständigen Pfadnamen einer Datei in der Form

X:\DIR\SUBDIR\NAME.EXT

und teilt ihn in seine vier Komponenten auf. Darauf werden diese Komponenten in den Strings gespeichert, auf die drive, dir, name und ext zeigen. (Alle fünf Parameter müssen übergeben werden, jedoch kann jeder NULL sein, was bedeutet, dass die entsprechende Komponente zwar ermittelt, jedoch nicht gespeichert wird.) Die Maximallänge dieser Strings sind durch die Konstanten _MAX_DRIVE, _MAX_DIR, _MAX_PATH, _MAX_FNAME und _MAX_EXT (in stdlib.h definiert) festgelegt; die Größenangaben schließen auch das terminierende Nullzeichen ein. Diese Konstanten sind in stdlib.h definiert.

_MAX_PATH

Pfad

_MAX_DRIVE

Laufwerksbuchstabe einschließlich Doppelpunkt (:)

_MAX_DIR

Verzeichnis einschließlich führendem und abschließendem umgekehrtem Schrägstrich (\)

_MAX_FNAME

Dateiname

_MAX_EXT

Erweiterung einschließlich führendem Punkt (.)


_splitpath unterstellt, dass ausreichend Platz zur Speicherung jeder Komponente, die nicht NULL ist, verfügbar ist.

Bei der Aufteilung des Pfadnamens weist _splitpath den Komponenten folgende Angaben zu:

  • drive enthält neben dem Laufwerksbuchstaben auch den Doppelpunkt (C:, A: usw.).
  • dir enthält führende und abschließende umgekehrte Schrägstriche (\BC\include\, \source\ usw.).
  • name enthält den Dateinamen.
  • ext enthält den der Erweiterung voranstehenden Punkt (.C, .EXE usw.).

Die Funktionen _makepath und _splitpath sind invertierbar. Wenn Sie einen Pfadnamen mit _splitpath aufteilen lassen und dann die zurückgegebenen Elemente an _makepath übergeben, erhalten Sie wieder den ursprünglichen Pfadnamen.

Rückgabewert

Keiner.

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];
  /* Aktuelles Arbeitsverzeichnis ermitteln */
  getcwd(s,_MAX_PATH);
  if (s[strlen(s)-1] != '\\')
  /* Umgekehrten Schrägstrich \ anhängen */
    strcat(s,"\\");
  /* String in seine Elemente aufteilen */
  _splitpath(s,drive,dir,file,ext);
  strcpy(file,"DATA");
  strcpy(ext,".TXT");
  /* Alles wieder zusammensetzen */
  _makepath(s,drive,dir,file,ext);
  /* Ergebnis anzeigen */
  puts(s);
  return 0;
}

Portabilität

POSIX Win32 ANSI C ANSI C++

_splitpath

+

_wsplitpath

+