Barra laterale

programmazione:c:prelevare_nome_directory_da_percorsi_di_file

Prelevare nome directory da percorsi di file

Autore: Fabio Di Matteo
Ultima revisione: 09/07/2008

Capita spesso di avere il percorso completo di un file e volere individuare solo il nome della directory che contiene il file.
Niente di più semplice , ecco la funzione:

#include <stdio.h>
#include <string.h>
 
#define DELIMITER '/'
 
char* getdir(char* path){
	int i,pos_del=0;
	char* s = malloc(sizeof(path)); 
	for (i=0; i<=strlen(path); i++)	if (path[i]==DELIMITER) pos_del=i;
 
	strncpy(s, path, pos_del+1);
	return s;
}

La funzione prende come argomento una stringa contenente il percorso completo e restituisce una stringa stringa che contiene il solo nome della directory.

Esempio pratico

Vogliamo sapere in quale directory risiede il file eseguibile del nostro processo. Quindi la funzione verra utilizzata in questo modo :

...
 
int main(int argc, char *argv[]){
	printf("%s\n", getdir(argv[0]));
        return 0;
}

programmazione/c/prelevare_nome_directory_da_percorsi_di_file.txt · Ultima modifica: 18/04/2018 - 15:49 (modifica esterna)