nazwa pliku

0

Jak ze sieżki do pliku wyjąć nazwę tego pliku?

Sorry jeśli już kiedyś było takie pytanie ale nie znalazłem takiego więc się pytam.

0

Może najpierw powiesz w czym piszesz?
Jeżeli w Builder to

AnsiString ExtractFileName(AnsiString)

Jeżeli Winapi to

short GetFileTitle(LPCSTR, LPTSTR, WORD);

Jeżeli czysty C++ to sam musisz sobie napisać(chyba).

0

generalnie jak sciezka jest w postaci stringa, to nazwa pliku jest top co jest po ostatnim znaczku '/' wystarczy wiec podzielic string po tych znaczkach, albo czytac od konca do pierwszego...

0

moja propozycja:

void getfilename(char * cel, char *dir){

        char *ptr;

                ptr = strrchr(dir,'\');

                strcpy(cel,ptr+1);

}

// a jak będzie c:\dir\subdir\plik.exe, albo c:plik.exe to sie po prostu wykrzaczy. [mf]

0
char* getfilename(char* path){
  int i=strlen(path);
  while(i--)if((path[i]=='\')||(path[i]==':'))break; 
  return &path[++i];
}

  //...
  char* s=(char*)malloc(MAX_PATH);
  GetModuleFileName(0,s,MAX_PATH);
  char* plik=strdup(getfilename(s));
  free(s);

  //...

  free(plik);

// działa i dla c:plik.exe i dla c:\1\2\3\plik.exe i dla samego plik.exe

1 użytkowników online, w tym zalogowanych: 0, gości: 1