c'est juste pour que ca fasse joli à l'execution, c'est l'indentation
c'est juste pour que ca fasse joli à l'execution, c'est l'indentation








en fait moi pour l'instant j'ai crée une fonction CompDir qui compresse un repertoire où dedans il y a que des fichiers .
franchement je suis perdu dans le code![]()
où est ce qu'elles sont affichées les listes des répertoires et des fichiers ?
à l'aide des?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Console::WriteLine
dans ce cas je peux remplacer "Console::WriteLine" par ma fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CompressDir(String ^dirSource, String ^ dirDestination)








le code ca serait quelque chose comme ca :
par contre j'ai une question est ce qu'il affiche les sous-sous répertoires ???
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 static void WriteFileEntries(String^ folder) { StringBuilder^ tab = gcnew StringBuilder(String::Empty); // Afficher les dossiers présents et leur contenu par récursivité array<System::String ^>^ subdirs = Directory::GetDirectories(folder); // SI le dossier contient des sous-dossiers if (subdirs->Length != 0) { for each (String^ s in subdirs) {CompressDir(tab->ToString() + Path::GetFileName(s), String ^ dirDestination) WriteFileEntries(s); } } // Afficher les noms des fichiers présents array<System::String ^>^ files = Directory::GetFiles(folder); // SI le dossier contient des fichiers if (files->Length != 0) { for each (String^ s in files) CompressDir(tab->ToString() + Path::GetFileName(s), String ^ dirDestination)); } }








ca marche pas
par contre j'ai reussi mtnt à compresser un repertoire mais à condition qu'il y ait un seul sous repertoire dans chaque niveau
je sais pas comment faire quand c'est 2 ou plus ???
voici mon code :
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 private : String ^path; private : String ^pathnew; public : String ^file; public :array<String ^> ^ files; private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { array<String ^> ^ directories; CompressDir(textBox1->Text, textBox2->Text); directories = Directory::GetDirectories(path); while(directories->Length != 0) { for each (String ^dir in directories) { String ^u= dir->Substring(path->Length); DirectoryInfo^ di = Directory::CreateDirectory(pathnew+u+"compressed"); String ^dirnew=pathnew+u+"compressed"; CompressDir(dir,dirnew); directories = Directory::GetDirectories(dir); } } } void CompressDir(String ^dirSource, String ^ dirDestination) { path = dirSource; pathnew = dirDestination; files = Directory::GetFiles(path); DirectoryInfo^ di = Directory::CreateDirectory(pathnew); for each (file in files) { String ^v= file->Substring(path->Length); System::Windows::Forms::MessageBox::Show(v); if (!compresserFichier(file, pathnew+v+".gz")) Console::WriteLine("failure in compression"); } }








au début je pointe sur le repertoire et apres je pointe sur le sous repertoire et je continue l'algorithme
Code : Sélectionner tout - Visualiser dans une fenêtre à part directories = Directory::GetDirectories(dir);
mais je sais pas faire quand il y a deux sous repertoires
est ce que quelqu'un a une idée comment je peux faire ?
merci d'avance








j'ai tout testé , pourtant je sens que je suis si près![]()
si quelqu'un a une idée ?
merci
Code :
directories = Directory::GetDirectories(dir);
au début je pointe sur le repertoire et apres je pointe sur le sous repertoire et je continue l'algorithme
mais je sais pas faire quand il y a deux sous repertoires
est ce que quelqu'un a une idée comment je peux faire ?
merci d'avance








j'ai réussi à faire une méthode "CompressDir"qui compresse un dossier D en un dossier Dcompressed et une autre qui decompresse , voici mon code :
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 void CompressDir(String ^dirSource, String ^ dirDestination) { String ^file; array<String ^> ^ directories; array<String ^> ^ files; String ^path = dirSource; String ^pathnew = dirDestination; files = Directory::GetFiles(path); DirectoryInfo^ di = Directory::CreateDirectory(pathnew); for each (file in files) { String ^v= file->Substring(path->Length); if (!compresserFichier(file, pathnew+v+".gz")) Console::WriteLine("failure in compression"); } directories = Directory::GetDirectories(path); for each (String ^dir in directories) { String ^u= dir->Substring(path->Length); System::Windows::Forms::MessageBox::Show("u "+u); String ^dirnew=pathnew+u+"compressed"; System::Windows::Forms::MessageBox::Show("pathnew "+pathnew); CompressDir(dir,dirnew); } } void DecompressDir(String ^dirSource, String ^ dirDestination) { String ^file; array<String ^> ^ directories; array<String ^> ^ files; String ^path = dirSource; String ^pathnew = dirDestination; files = Directory::GetFiles(path); DirectoryInfo^ di = Directory::CreateDirectory(pathnew); for each (file in files) { String ^v= file->Substring(path->Length); int i = v->Length; i = i-3; String ^v1 = v->Substring(0,i); System::Windows::Forms::MessageBox::Show("v1 "+v1); if (!decompression(file, pathnew+v1)) Console::WriteLine("failure in compression"); } directories = Directory::GetDirectories(path); for each (String ^dir in directories) { String ^u= dir->Substring(path->Length); String ^dirnew=pathnew+u+"decompressed"; DecompressDir(dir,dirnew); } } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { DecompressDir(textBox1->Text, textBox2->Text); }








j'ai réussi à compresser n fichiers en un fichier
et j'ai mis dans le début du fichier : un String ou il y a :
le nombre de fichier
nom fichier
sa taille
nom fichier1
sa taille 1
nom fichier2
sa taille 2
.
.
.
nom fichier n
sa taille n
voici un exemple :
donc pour decompresser, je bloque sur un point:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 6 c:\\mydirr\a0.txt 5324 c:\\mydirr\b.txt 4992 c:\\mydirr\b1.txt 4992 c:\\mydirr\b2.txt 4992 c:\\mydirr\c0.txt 5238 c:\\mydirr\c1.txt 5238
comment récuperer le int qui me donne le nombre des fichiers ?
Partager