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

Windows Discussion :

Détecter la suppression d'un fichier dans un répertoire...


Sujet :

Windows

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut Détecter la suppression d'un fichier dans un répertoire...
    Salut à tous,

    je cherche actuellement, en vain, des informations ou des idées sur le moyen de déclencher une action dans mon programme ( en fait un service NT ) lorsqu'un fichier ( n'importe lequel ou un sous-dossier ) d'un certain dossier est supprimé....

    Quelqu'un a t il la moindre idée ( à part établir à intervalles réguliers la liste des fichiers du dossier et les comparer entre elles ? )

    Merci d'avance pour votre aide qui me sera précieuse !
    Neilos

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut

    Regarde du côté de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    The FindFirstChangeNotification function creates a change notification handle and sets up initial change notification filter conditions. A wait on a notification handle succeeds when a change matching the filter conditions occurs in the specified directory or subtree. 
    
    HANDLE FindFirstChangeNotification(
      LPCTSTR lpPathName,    // directory name
      BOOL bWatchSubtree,    // monitoring option
      DWORD dwNotifyFilter   // filter conditions
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Oki merci beaucoup

    Mais en fait après étude plus approfondie de la fonction sur le site MSDN j'ai découvert que cette fonction permet de réagir à la modification d'un fichier, de ses attributs, à la création d'un fichier ou dossier....mais pas à sa suppresion... Du moins c'est ce que j'ai compris !
    Neilos

  4. #4
    fd
    fd est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    si si tu peux

    tiré du msdn

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    DWORD dwWaitStatus; 
    HANDLE dwChangeHandles[2]; 
     
    // Watch the C:\WINDOWS directory for file creation and 
    // deletion. 
     
    dwChangeHandles[0] = FindFirstChangeNotification( 
        "C:\\WINDOWS",                 // directory to watch 
        FALSE,                         // do not watch the subtree 
        FILE_NOTIFY_CHANGE_FILE_NAME); // watch file name changes 
     
    if (dwChangeHandles[0] == INVALID_HANDLE_VALUE) 
        ExitProcess(GetLastError()); 
     
    // Watch the C:\ subtree for directory creation and 
    // deletion. 
     
    dwChangeHandles[1] = FindFirstChangeNotification( 
        "C:\\",                        // directory to watch 
        TRUE,                          // watch the subtree 
        FILE_NOTIFY_CHANGE_DIR_NAME);  // watch dir. name changes 
     
    if (dwChangeHandles[1] == INVALID_HANDLE_VALUE) 
        ExitProcess(GetLastError()); 
     
    // Change notification is set. Now wait on both notification 
    // handles and refresh accordingly. 
     
    while (TRUE) 
    { 
     
        // Wait for notification.
     
        dwWaitStatus = WaitForMultipleObjects(2, dwChangeHandles, 
            FALSE, INFINITE); 
     
        switch (dwWaitStatus) 
        { 
            case WAIT_OBJECT_0: 
     
            // A file was created or deleted in C:\WINDOWS. 
            // Refresh this directory and restart the 
            // change notification. RefreshDirectory is an 
            // application-defined function. 
     
                RefreshDirectory("C:\\WINDOWS") 
                if ( FindNextChangeNotification( 
                        dwChangeHandles[0]) == FALSE ) 
                    ExitProcess(GetLastError()); 
                break; 
     
            case WAIT_OBJECT_0 + 1: 
     
            // A directory was created or deleted in C:\. 
            // Refresh the directory tree and restart the 
            // change notification. RefreshTree is an 
            // application-defined function. 
     
                RefreshTree("C:\\"); 
                if (FindNextChangeNotification( 
                        dwChangeHandles[1]) == FALSE) 
                    ExitProcess(GetLastError()); 
                break; 
     
            default: 
                ExitProcess(GetLastError()); 
        }
    }

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Oki merci beaucoup, je n'ai pas le MSDN, j'utilise seulement le site de Microsoft ( sur lequel l'exemple est aussi )....

    Le MSDN est il un bon invesstissement pour un jeune programmeur ( mais passionné ) ? Et c'est quoi exactement ?


    Ah oui je me demande actuellement comment récupérer le nom du fichier/dossier sur lequel la modification a eu lieu !

    Y a t il une fonction qui fait cela ou dois-je comparer l'arborescence avant et après que la modification ait eu lieu ?

    Merci encore pour ton aide !
    Neilos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression de fichiers dans un répertoire
    Par ponpon17430 dans le forum VBScript
    Réponses: 1
    Dernier message: 20/03/2012, 17h24
  2. Réponses: 2
    Dernier message: 16/03/2012, 09h09
  3. [Vxi3] Suppression d'un fichier dans macro
    Par delphine35 dans le forum Deski
    Réponses: 1
    Dernier message: 05/11/2009, 15h50
  4. Réponses: 3
    Dernier message: 31/05/2007, 15h05
  5. Suppression conditionnelle de fichier dans un .bat
    Par mdriesbach dans le forum Windows
    Réponses: 2
    Dernier message: 13/10/2006, 08h59

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