fnsplit, _wfnsplit

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu dir.h - Index


Header-Datei

dir.h

Kategorie

Verzeichnisbearbeitungsroutinen

Prototyp

int fnsplit(const char *path, char *drive, char *dir, char *name, char *ext);

int _wfnsplit(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.

fnsplit erhält den vollständigen Pfadnamen (path) einer Datei als String in der Form X:\DIR\SUBDIR\NAME.EXT und teilt den Pfad in seine vier Komponenten auf. Die Komponenten werden dann in den Strings gespeichert, auf die die Parameter drive, dir, name und ext zeigen. Alle fünf Komponenten müssen übergeben werden, jedoch kann jede dieser Komponenten Null sein, so dass die entsprechende Komponente analysiert, aber nicht gespeichert wird. Wenn eine Pfadkomponente Null ist, ist die zugehörige Komponente ein leerer String, der nicht NULL ist.

Die Maximalgrößen für diese Strings werden durch die (in dir.h definierten) Konstanten MAXDRIVE, MAXDIR, MAXPATH, MAXFILE und MAXEXT festgelegt, die jeweils Raum für den Nullterminator beinhalten.

fnsplit setzt voraus, dass ausreichend Speicher zum Speichern aller nicht-leeren Komponenten vorhanden ist.

  • Bei der Aufteilung des Pfadnamens weist fnsplit den Komponenten folgende Angaben zu:
  • drive beinhaltet einen Doppelpunkt (C:, A: usw.)
  • dir umfasst einen führenden und einen nachfolgenden Schrägstrich (\BC\include\, \source\ usw.)
  • name beinhaltet den Dateinamen
  • ext beinhaltet den Punkt, der der Erweiterung voransteht (.C, .EXE usw.).

fnmerge und fnsplit sind invertierbar. Wenn Sie einen gegebenen path mit fnsplit aufteilen und die resultierenden Komponenten mit fnmerge zusammenführen, erhalten Sie wieder path.

Rückgabewert

fnsplit gibt einen Integer-Wert (der aus fünf in dir.h definierten Konstanten besteht) zurück, der angibt, welche Komponenten einer vollständigen Pfadangabe in path gegeben waren. Diese Flags und die durch sie dargestellten Komponenten werden nachfolgend beschrieben:

EXTENSION

Eine Erweiterung

FILENAME

Ein Dateiname

DIRECTORY

Ein Verzeichnis (und mögliche Unterverzeichnisse)

DRIVE

Eine Laufwerksspezifikation (siehe dir.h)

WILDCARDS

Platzhalter (* oder ?)



Beispiel



 #include <stdlib.h>
 #include <stdio.h>
 #include <dir.h>
 int main(void)
 {
     char *s;
     char drive[MAXDRIVE];
     char dir[MAXDIR];
     char file[MAXFILE];
     char ext[MAXEXT];
     int flags;
     s=getenv("COMSPEC"); /* Umgebungsparameter comspec einlesen */
     flags=fnsplit(s,drive,dir,file,ext);
     printf("Command processor info:\n");
     if(flags & DRIVE)
        printf("\tdrive: %s\n",drive);
     if(flags & DIRECTORY)
        printf("\tdirectory: %s\n",dir);
     if(flags & FILENAME)
        printf("\tfile: %s\n",file);
     if(flags & EXTENSION)
        printf("\textension: %s\n",ext);
     return 0;
 }



Portabilität



POSIX Win32 ANSI C ANSI C++

fnsplit

+

_wfnsplit

nur NT