Bonjour,

j'ai créé une fonction de monitoring de répertoire, tous compile bien, elle marche.

Mais j'aurai besoin de récupérer le nom du fichier qui a était créé et je ne c'est absolument pas comment faire.


Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void RefreshDirectory(LPTSTR lpDir)
{
 
   _tprintf(TEXT("Directory (%s) changed.\n"), lpDir);
}

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
DWORD dwWaitStatus; 
HANDLE dwChangeHandles[2]; 
 
 
 
dwChangeHandles[0] = FindFirstChangeNotification( 
    "D:\\Documents and Settings\\A159754\\Bureau\\serveur\\rapport",                
    FALSE,                        
    FILE_NOTIFY_CHANGE_FILE_NAME);  
 
if (dwChangeHandles[0] == INVALID_HANDLE_VALUE) 
    ExitProcess(GetLastError()); 
 
 
 
dwChangeHandles[1] = FindFirstChangeNotification( 
    "D:\\Documents and Settings\\A159754\\Bureau\\serveur\\rapport",                        
    TRUE,                          
    FILE_NOTIFY_CHANGE_DIR_NAME);  
 
if (dwChangeHandles[1] == INVALID_HANDLE_VALUE) 
    ExitProcess(GetLastError()); 
 
 
 
while (TRUE) 
{ 
 
 
 
    dwWaitStatus = WaitForMultipleObjects(2, dwChangeHandles, 
        FALSE, INFINITE); 
 
    switch (dwWaitStatus) 
    { 
        case WAIT_OBJECT_0: 
 
            RefreshDirectory("D:\\Documents and Settings\\A159754\\Bureau\\serveur\\rapport"); 
            if ( FindNextChangeNotification( 
                    dwChangeHandles[0]) == FALSE ) 
                ExitProcess(GetLastError()); 
                cout<< "coucou4";
            break; 
 
        case WAIT_OBJECT_0 + 1: 
 
            RefreshTree("D:\\Documents and Settings\\A159754\\Bureau\\serveur\\rapport"); 
            if (FindNextChangeNotification( 
                    dwChangeHandles[1]) == FALSE) 
                ExitProcess(GetLastError());
 
            break; 
 
        default: 
            ExitProcess(GetLastError()); 
    }
}

Si vous avez une idée ou une solution je suis preneur.

Cordialement