Extraire un fichier en ressource et le copier sur l'ordinateur

1/5 (2 avis)

Snippet vu 7 169 fois - Téléchargée 9 fois

Contenu du snippet

    ''' <summary>
    ''' Extrait une ressources
    ''' </summary>
    ''' <param name="pResName">Nom de la ressource</param>
    ''' <param name="pDirDest">Dossier de destination</param>
    ''' <remarks></remarks>
    Public Sub ExtractRessource(ByVal pResName As String, ByVal pDirDest As String)
        Try
            Dim lSrc As IO.Stream = Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream(pResName)
            If lSrc Is Nothing Then Exit Sub
            Dim lFileName As String = IO.Path.Combine(pDirDest, pResName.Substring(pResName.IndexOf("."c) + 1))
            'Fichier déjà existant ?
            If IO.File.Exists(lFileName) AndAlso MD5(lFileName) = MD5(lSrc) Then
                lSrc.Close()
                Exit Sub
            End If
            lSrc.Close()
            lSrc = Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream(pResName)
            Dim lDst As IO.FileStream = IO.File.Open(lFileName, IO.FileMode.Create)
            Dim lData(1024) As Byte
            Dim lLng As Integer = 1024
            Do While lSrc.Position < lSrc.Length
                If (lSrc.Length - lSrc.Position) < lLng Then lLng = CInt((lSrc.Length - lSrc.Position))
                lSrc.Read(lData, 0, lLng)
                lDst.Write(lData, 0, lLng)
                lDst.Flush()
            Loop
            lSrc.Close()
            lDst.Close()
        Catch ex As Exception
#If DEBUG Then
            Debug.Print(ex.ToString)
            Stop
#End If
        End Try
    End Sub

Compatibilité : VB 2005

A voir également

Ajouter un commentaire Commentaires
NHenry Messages postés 15048 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 mars 2023 156
5 oct. 2014 à 13:47
La grosse différence, c'est que le nom de la ressource peut être renseigné dynamiquement et non statiquement.
Robin233 Messages postés 3 Date d'inscription dimanche 5 octobre 2014 Statut Membre Dernière intervention 9 octobre 2014
5 oct. 2014 à 13:22
nul, y a juste à faire: System.IO.File.WriteAllBytes("folder", My.Resources.miaou)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.