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