# gibts in c++ sowas wie extractfilepath oder so ?



## damasta (31. Oktober 2002)

Ich würde gerne folgende funktion haben die mir aus einem pfad mit datei nur den pfad ausgibt also aus C:\windows\dreckswindows.exe nur C:\windows so als beispiel.


----------



## goela (31. Oktober 2002)

Es gibt nur eine Funktion, wo Du Pfad, Laufwerk und Dateinamen sowie Extension splitten kannst! Für Dein Beispiel müsstest Du die Verzeichnisse manuell trennen.

Hier mal ein Beispiel für _splitpath()


```
/* MAKEPATH.C */

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" );
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext );
   printf( "Path extracted with _splitpath:\n" );
   printf( "  Drive: %s\n", drive );
   printf( "  Dir: %s\n", dir );
   printf( "  Filename: %s\n", fname );
   printf( "  Ext: %s\n", ext );
}
```

Ausgabe:

```
Path created with _makepath: c:\sample\crt\makepath.c

Path extracted with _splitpath:
  Drive: c:
  Dir: \sample\crt\
  Filename: makepath
  Ext: .c
```


----------



## Dario Linsky (31. Oktober 2002)

wenn ich mich recht erinnere, dann gibt es im borland c++ builder eine funktion, die sogar wirklich ExtractFilePath() heisst. 
das ist dann allerdings kein ansi-c++, sondern gehört zur vcl (oder doch zum windows api?).


----------



## goela (31. Oktober 2002)

ExtractFilePath() ist keine Funktion des Windows-API's.


----------



## Dario Linsky (31. Oktober 2002)

ok, dann gehört es zur vcl. müsst ich mal nachschlagen, in welcher unit das versteckt ist.


----------



## damasta (1. November 2002)

ich kannte den befehl nur aus delphi deswegen war topic so


----------



## goela (1. November 2002)

Aber meint ihr nicht, das ExtractFilePath() auch nur den Pfad zurückgibt so wie splitpath()?


----------



## damasta (1. November 2002)

jo macht halt aus c:\fsdgdfg\sdfs.exe  c:\fsdgdfg


----------



## Dario Linsky (1. November 2002)

ich kenn die extractfilepath()-funktion auch nur aus delphi, aber der c++ builder ist zu ungefähr 99% identisch - nur die sprache dahinter ist anders.


----------



## goela (1. November 2002)

> jo macht halt aus c:\fsdgdfg\sdfs.exe c:\fsdgdfg



Eben, dies macht ja _splitpath() auch, plus ein paar zusätzliche Dinge wie Laufwerk etc. zurückgeben!


----------



## Dario Linsky (1. November 2002)

dafür gibt es dann in der vcl eigene funktionen, wie z.b. ExtractFileExt für die dateinamenerweiterung, ExtractFileName für den dateinamen ohne die pfadangabe, ExtractFileDrive für das laufwerk, usw.


----------

