Voici un petit bout de code pratique : connaitre la taille d'un répertoire fichiers et sous répertoires inclus
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 /** * Calcul de la taille d'un répertoire (récursif) */ __int64 getDirectorySize(AnsiString path) { __int64 totalSize = 0; AnsiString searchPath; /* On vérifie que path se termine bien par '\' */ if(path[path.Length()] != '\\') { path += '\\'; } searchPath = path; searchPath += "*"; TSearchRec fileInfo; /* on inspecte tous les fichiers et dossiers */ if( 0 == FindFirst(searchPath, faAnyFile, fileInfo)) { do { /* on ignore . et .. */ if("." == fileInfo.Name || ".." == fileInfo.Name) { continue; } switch(fileInfo.Attr) { case faDirectory : /* appel récursif */ totalSize += getDirectorySize(path + fileInfo.Name + "\\"); break; case faSymLink : /* ignorer symlinks */ break; default : /* on ajoute la taille du fichier à la taille du répertoire */ totalSize += fileInfo.Size; } } while(!FindNext(fileInfo)); } FindClose(fileInfo); return totalSize; }
Partager