IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

suppression de fichier impossible


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut suppression de fichier impossible
    Hello !

    J'ai un petit probleme, je souhaite effacer un fichier avec mon IHM codé en C sans MFC. Le probleme est que la fonction deleteFile me renvoi False et que le fichier ne veut pas se supprimer... Je suppose que l'IHM doit garder l'acces a ce fichier... Mais je ne sais pas comment faire pour le supprimer malgré tout...

    Quelqu'un aurait il une idee ????

    Merci d'avance !!!

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Comme ca sans plus d'infos il n'y a pas grand mode qui pourra t'aider, donne plus de detail sur ton programme, ansi que quelques bouts de code (utile).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    c'est a dire que c'est assez dificile a expliquer... Tout ceci s'insere dans le programme qui mine de rien devient plutot assez grand...

    Le fichier est un fichier de type avec l'extension .ethereal (libpcap). je travail dessus av mon prog dans un thread. Ce thread utilise les methodes de pcap.h mais je prend soin de refermer le fichier apres le traitement. Une fois que mes opérations sont terminées, je termine les thread et toutes les opérations relativent a ce fichier puis je lance le DeleteFile sur chacun des fichiers créés... mais aucun ne se supprime...

    Y a t-il une methode permettant de tester si le fichier est encore ouvert et si il est utilisé par un processus ?

    Merci pour l'aide !

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gdpasmini
    J'ai un petit probleme, je souhaite effacer un fichier avec mon IHM codé en C sans MFC. Le probleme est que la fonction deleteFile me renvoi False et que le fichier ne veut pas se supprimer...
    • soit le fichier est ouvert
    • soit il est utilisé par le système ou une autre application.
    Il faut donc remedier à ces problèmes avant de l'effacer. Pas moyen de passer outre (heureusement...)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    Ok, je m'en doutais... Mais je ne vois pas ce qu'il faut que je fasse pour que mon IHM arrete d'utiliser ce fichier... Je comprens vraiement pas car les thread sont bien arreté et le fichier est censé etre fermé...

    Il n'y a pas de methodes pour testé si le fichier est ouvert ??

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gdpasmini
    Ok, je m'en doutais... Mais je ne vois pas ce qu'il faut que je fasse pour que mon IHM arrete d'utiliser ce fichier... Je comprens vraiement pas car les thread sont bien arreté et le fichier est censé etre fermé...
    Est-tu sûr que les threads soient arrétés ? Avec les pthreads, on synchronise avec pthread_join()...

    http://emmanuel-delahaye.developpez.com/pthreads.htm

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    voila le code suppression des thread et des fichiers... je n'ai pas de message d'erreurs quant a la suppression ds threads, je suppose donc qu'ils sont bien arretés...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    if(!TerminateThread(hThreads[i].thread, 0))
        MessageBox(hwnd,"Impossible de terminer le thread", "Message",MB_ICONQUESTION);
     
    
    char nomFichier[260];
     
    
    if(!DeleteFile(hThreads[i].nomflux))
    {
       sprintf(nomFichier, "Impossible de supprimer le fichier %s", (hThread
      [i].nomflux));
       MessageBox(hwnd,nomFichier, "Message",MB_ICONQUESTION);
    }
    else
    {
       MessageBox(hwnd,"Fichier supprimé", "Message",MB_ICONQUESTION);
       printf("on a supprimé %s\n", hThreads[i].nomflux);
    }
    

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 59
    Points : 49
    Points
    49
    Par défaut
    Sous windows, il n'est pas facile de voir la liste des fichiers ouverts par une application.

    Essaie avec le programme Process Explorer que tu peux trouver sur

    http://www.sysinternals.com/Utilitie...sExplorer.html

    tu auras accès à pleins d'informations sur ton processus (et ses threads) ainsi que les fichiers ouverts.

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gdpasmini
    voila le code suppression des thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    if(!TerminateThread(hThreads[i].thread, 0))
    
    C'est du Windows... ... alors demande des précisions sur le forum "Développement Windows".

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    Ok, je vais voir la bas... il y a un forum developpement windows ?? Je ne l'avais pas vu !

    merci de ton aide ds tt les cas !

Discussions similaires

  1. Suppression de fichier impossible avec unlink
    Par sachaaaz dans le forum Langage
    Réponses: 2
    Dernier message: 17/12/2012, 10h50
  2. [XL-2007] Suppression de fichier impossible
    Par marc56 dans le forum Excel
    Réponses: 0
    Dernier message: 21/05/2012, 19h12
  3. Suppression de fichier impossible [unlink]
    Par Bast-Eo dans le forum Langage
    Réponses: 3
    Dernier message: 16/01/2010, 09h55
  4. Suppression de fichier ou répertoire impossible avec EXE
    Par OhMonBato dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 19/10/2008, 13h11
  5. suppression de fichier impossible (windows xp)
    Par annecyrond dans le forum Windows XP
    Réponses: 8
    Dernier message: 10/03/2005, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo