Comment obtenir le répertoire d'un fichier à partir du chemin d'accès complet dans C
Je suis en train dynamiquement pour obtenir le répertoire parent (disons C:\some\dir
) à partir d'un nom de fichier je reçois dans un argument (dire C:\some\dir\file
), et le mettre dans un char*
. J'ai déjà le chemin d'accès complet et le fichier dans un char*
. Exactement comment aurais-je le faire en C?
J'ai un code mais dans mon esprit, c'est tout brouillé et je ne peux pas faire tout le sens de l'il. Comment dois-je retravailler/réécriture?
/* Gets parent directory of file being compiled */
short SlashesAmount;
short NamePosition;
short NameLength;
char* Pieces[SlashesAmount];
char* SplitPath;
short ByteNumber;
short PieceNumber;
char* ScriptDir;
NameLength = strlen(File);
//Dirty work
SplitPath = strtok(File, "\");
do {
ByteNumber = 0;
do {
File[NamePosition] = CurrentPiece[ByteNumber];
NamePosition++;
} while(File[NamePosition] != '\n');
PieceNumber++;
} while(NamePosition < NameLength);
Utiliser les
char *strrchr(const char *string, int c);
ne strrchr(File, '\\') = '\0';
note strtok()
modifie premier argument.
OriginalL'auteur AlexTheRose | 2014-01-20