Hello,

J'ai programmé une petite appli que j'ai quasi terminé, mais je voulais ajouter la compression 7z en plus de la zip. Gros hic, je n'arrive pas à comprendre du tout comment utiliser le sdk.

Est ce que certains s'y sont déjà attaqué ?

Cordialement.

Edit:
Je mets pour les autres.
-- Dans les nuggets pour limiter les soucis prendre 'SevenZipSharp' mais surtout 'sevenZipSharp.interop' (qui amène les versions x86 et x64)
-- Un petit bout de code pour lancer la bestiole...c'est de l'alpha, je tatone par manque d'info, comme par exemple pour le moment je ne sais pas comment

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
   public static bool CompressFolder(string folder, string archiveDest, int cplLvl)
        {
            // On verifie la présence du dossier avant
            if (!Directory.Exists(folder)) return false;
 
            archiveDest = archiveDest + ".7z";
 
           // Pour la version x86
            string sSeventZipLink = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "x86", "7z.dll" );
            if (!File.Exists(sSeventZipLink))
            {
                MessageBox.Show("7z.dll missing", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return false;
            }
 
 
            // Fournir l'adresse de la dll
            SevenZipCompressor.SetLibraryPath(sSeventZipLink);            
 
            SevenZipCompressor szp = new SevenZipCompressor();
 
            szp.FilesFound += FilesFound;
            szp.Compressing += Compressing;
            szp.FileCompressionStarted += FileCompressionStarted;
            szp.FileCompressionFinished += FileCompressionFinished;
            szp.CompressionFinished += CompressionFinished;
 
            szp.CompressionLevel = CompressionLevel.Ultra;
            szp.CompressionMode = CompressionMode.Create;
            szp.ArchiveFormat = OutArchiveFormat.SevenZip;
            szp.DirectoryStructure = true;
            try
            {
                szp.CompressDirectory(folder, archiveDest);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
 
            return true;
        }
derrière y'a quelques events à voir mais je n'ai pas encore bien compris certains donc pour le moment...


Egalement je ne me suis pas penché sur la question mais il faudrait identifier quelle version est lancée du programme pour donner le bon chemin selon que ce soit du x86 ou du x64.