Avec cette fonction:
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
Private Sub DecompressFile(ByVal FileToDecompress As FileInfo, ByVal ExtractDir As String)
        Dim Tmp As New SevenZipExtractor(FileToDecompress.FullName)
        Static tabSize As Integer = 0
 
        Try
            For i = 0 To Tmp.ArchiveFileData.Count - 1
                Tmp.ExtractFiles(ExtractDir, Tmp.ArchiveFileData(i).Index)
 
                '* Ajout du fichier courant à la liste des fichiers à importer et redimenssionnement du tableau.
                tabSize = tabSize + 1
                Array.Resize(FilesList, tabSize)
                FilesList(tabSize - 1) = ExtractDir & "\" & Tmp.ArchiveFileData(i).FileName
            Next
 
            If Not IsOnError Then
                '* Deplacement de l'archive originale dans le dossier decompresse.
                Try
                    Tmp.Dispose()
                    'File.Move(FileToDecompress.FullName, ExtractDir & "\" & FileToDecompress.Name)
                Catch ex As Exception
                    ErrorMessages = ErrorMessages & vbCrLf & ex.Message.ToString
                    IsOnError = True
                End Try
            End If
        Catch ex As Exception
            ErrorMessages = ErrorMessages & vbCrLf & ex.Message.ToString
            IsOnError = True
        End Try
    End Sub
Je décompresse des archives. Par la suite je parse chacun des fichiers mais le problème est que :
Le processus ne peut pas accéder au fichier '...', car il est en cours d'utilisation par un autre processus.
Donc y a-t-il un moyen de forcer la fermeture des fichiers ? Ce que je ne sais pas, c'est si la bibliothèque 7-Zip que j'utilise avec un binding C# ferme le fichier après la phase de décompression.

Si vous avez des idées je prend



[EDIT]
Je précise que j'utilise la bibliothèque suivante: https://sevenzipsharp.codeplex.com/