Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/05/2011, à 08:52

temps

[résolu] effacer un fichier en langage c

Bonjour,
je suis à la recherche des techniques pour effacer un fichier en langage c, actuellement à l'endroit ou je veux effacer le fichier j'entre ces deux lignes de code

#define efface "joris.jo"
remove(efface);

Du fait que j'ai trouvé ça d'une manière empirique, je crains que ce soit à l'arraché. C'est pourquoi je cherche à connaitre quelles sont les différentes techniques pour effacer un fichier ? et même au passage aussi un répertoire complet.
Cordialement

Dernière modification par temps (Le 11/05/2011, à 11:55)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 05/05/2011, à 09:01

Lumin0u

Re : [résolu] effacer un fichier en langage c

supprimer un fichier en C
remove() c'est la fonction standard, pourquoi chercher autre chose?
j'ai trouvé ça pour supprimer un dossier

Hors ligne

#3 Le 05/05/2011, à 09:29

temps

Re : [résolu] effacer un fichier en langage c

Merci pour la réponse, j'en conclu que c'est comme ça qu'il faut utiliser remove. Mais au dela de cette utilisation de remove, n'y a t il pas d'autres manières de s'en servir ?
En exemple, j'utilise un define qui identifie le fichier (ici joris.jo), mais pourquoi ne pas utiliser une variable qui permettrait dans une boucle d'effacer plein de fichiers selon un critère. Donc bien plus puissant que define. C'est vers ce sens de discutions que je voulais porter le fil.
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#4 Le 05/05/2011, à 09:43

Lumin0u

Re : [résolu] effacer un fichier en langage c

c'est à dire parcourir un répertoire et pour chaque fichier tester certains critères et éventuellement supprimer?
pour le parcours de répertoire, il n'y a pas de méthode standard pour windows et unix, voilà les 2 méthodes

Dernière modification par Lumin0u (Le 05/05/2011, à 09:44)

Hors ligne

#5 Le 10/05/2011, à 00:30

ploulp

Re : [résolu] effacer un fichier en langage c

Déjà un petit programme qui supprime les fichier passé en arguments :

int main(int argc, char *argv[])
{
    int i;
    for(i=1;i<argc;i++){
        remove(argv[i]);
    }
    return0;
}

Ensuite pour parcourir les fichiers présents dans un dossier on peut s'inspirer de ls :

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

int main(int argc, char *argv[])
{
    struct dirent *sdir;
    DIR *rep;

    if(argc<=1)
        exit(1);/*si aucun dossier n'est passé en arg on quitte*/

    rep = opendir(argv[1]);/*on ouvre le dossier*/

    while(sdir=readdir(rep))/*a chaque itération on passe au fichier suivant*/
    {
        printf("%s\n",sdir->d_name);/*l'attribut d_name contient le nom du
                                  *fichier actuel, on peut s'en servir
                                  *pour filtrer les fichiers*/
    }
    printf("\n");
    closedir(rep);
    return 0;
}

Pour effacer un répertoire complet regarde dans la lib dirent.h doit bien y avoir un moyen.

Hors ligne

#6 Le 11/05/2011, à 11:54

temps

Re : [résolu] effacer un fichier en langage c

Merci pour la réponse, elle apporte un joli petit utilitaire et en plus j'en apprends un peu plus sur le C.
Je poste en résolu.
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne