Précédent   Forum des professionnels en informatique > Dotnet > Langages > VB.NET
VB.NET Forum d'entraide sur la programmation Visual Basic .NET. Avant de poster -> FAQ VB.NET, Articles VB.NET, Sources VB.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 16h07   #1
Nouveau Membre du Club
 
Avatar de CLeBeR
 
Homme Clément
Lycéen
Inscription : septembre 2011
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : septembre 2011
Messages : 135
Points : 38
Points : 38
Par défaut Problème fonction file copy

Bonjour,
j'ai un problème avec la fonction FileCopy, je n'ai aucune erreur mais mon fichier qui est présent dans mes ressources ne se copie pas. Mon fichier est un fichier de clé registre ( .reg )

Voici le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
        Try
            Dim FileToCopy As String
            Dim NewCopy As String
            FileToCopy = My.Resources.ActiverApplication
            NewCopy = "C:\Users\CLeBeR\Desktop"
            If System.IO.File.Exists(FileToCopy) = True Then
                System.IO.File.Copy(FileToCopy, NewCopy)
                MsgBox("File Copied")
            End If
        Catch ex As Exception
            MsgBox(ex)
        End Try
CLeBeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h57   #2
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
Citation:
je n'ai aucune erreur mais mon fichier qui est présent dans mes ressources.
Il manquerait pas un morceau de phrase là ?

Essaye de rajouter un Dim poney as boolean = System.IO.File.Exists(NewCopy) après ta copy, et regarde en pas à pas ce qui se passe.
Rentres-tu au moins dans le if ?

PS : Dans l'expression If System.IO.File.Exists(FileToCopy) = True Then, le = True est inutil : If System.IO.File.Exists(FileToCopy) Then
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 17h24   #3
Membre confirmé
 
Avatar de Neiflheim
 
Homme Fabien
Développeur .NET
Inscription : mai 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : mai 2011
Messages : 133
Points : 267
Points : 267
Envoyer un message via MSN à Neiflheim
Code :
NewCopy = "C:\Users\CLeBeR\Desktop"
Tu dois mettre le nom du fichier complet :

Code :
NewCopy = "C:\Users\CLeBeR\Desktop\MonFichier.reg"
__________________
si mon message a été utile - si je suis à côté de la plaque - quand vous avez la réponse à votre question
Neiflheim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 17h52   #4
Nouveau Membre du Club
 
Avatar de CLeBeR
 
Homme Clément
Lycéen
Inscription : septembre 2011
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : septembre 2011
Messages : 135
Points : 38
Points : 38
Salut, merci a vous deux pour vos réponses

@Neiflheim
Sa ne marche pas quand même.

@asmduty
J'ai rajouté le dim poney... juste après le end if, mais je ne vois pas a quoi il sert, et pour le pas à pas j'ai appuyé sur F8 mais je n'ai pas d'erreurs sur mon copy, juste il me sélectionne des autres lignes mais qui n'ont rien à voir.

En attente de vos réponses
CLeBeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 08h36   #5
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
... le dim poney te sert à vérifier une fois passé sur la ligne, en pas à pas (F11) si le fichier que tu viens de créer existe, si poney est à true il existe; s'il est à faux il n'existe pas.
Et forcément si un fichier que tu viens de créer n'existe pas c'est assez facheux.

Aussi, comme l'a dit Neiflheim il faut indiquer le nom complet.
Peux tu aussi nous dire ce que vaut "My.Resources.ActiverApplication" ?
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 13h52   #6
Nouveau Membre du Club
 
Avatar de CLeBeR
 
Homme Clément
Lycéen
Inscription : septembre 2011
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : septembre 2011
Messages : 135
Points : 38
Points : 38
Re,
alors je viens de comprendre comment fonctionne le Pas à pas mais en fait quand je débogue la flèche jaune se met dans un sub mais pas dans le bon et je ne peut pas la déplacer comment faire ?
CLeBeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h17   #7
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
Tu sembles êtres lycéen, il est anormal qu'on ne t'ai pas appris les bases de Visual Studio.
Maintenant on ne va pas t'accompagner de A à Z dans ta formation, cherche des tutoriels si tes profs sont incapables de faire leur boulot correctement, ou si tu n'a pas compris (ou écouté) ce qu'ils t'ont expliqué
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 17h37   #8
Nouveau Membre du Club
 
Avatar de CLeBeR
 
Homme Clément
Lycéen
Inscription : septembre 2011
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : septembre 2011
Messages : 135
Points : 38
Points : 38
Je suis lycée mais j'apprends le VB par mes propres moyens, je suis en 1 ES donc aucune relations avec l'informatique ^^
CLeBeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 11h24   #9
Membre confirmé
 
Avatar de Neiflheim
 
Homme Fabien
Développeur .NET
Inscription : mai 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : mai 2011
Messages : 133
Points : 267
Points : 267
Envoyer un message via MSN à Neiflheim
Bon, je viens de relire le problème, et en effet, il n'est pas possible de copier une ressource brute vers un fichier de destination par la simple méthode File.Copy.

Voici un code que j'ai trouvé (VB 2005) qui devra être adapté peut être un tantinet :

Code :
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
  ''' <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

Une autre solution serait de lire ton fichier ressource avec un streamreader, et de copier le contenu vers un autre fichier.
__________________
si mon message a été utile - si je suis à côté de la plaque - quand vous avez la réponse à votre question
Neiflheim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 08h47   #10
Nouveau Membre du Club
 
Avatar de CLeBeR
 
Homme Clément
Lycéen
Inscription : septembre 2011
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : septembre 2011
Messages : 135
Points : 38
Points : 38
J'ai oublié de préciser que si j'utilise ce code pour extraire un .key sa marche

Code :
1
2
File.WriteAllBytes("C:\Program Files\MonProgramme\KeyActivation.key", My.Resources.KeyActivation)
        MsgBox("L'activation du logiciel s'est déroulée correctement !", MsgBoxStyle.Information)
CLeBeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2012, 21h56   #11
Nouveau Membre du Club
 
Avatar de CLeBeR
 
Homme Clément
Lycéen
Inscription : septembre 2011
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : septembre 2011
Messages : 135
Points : 38
Points : 38
Sujet résolu ! J'ai trouvé le code qui fonctionne :

Code :
 File.WriteAllText("C:\Nomdemaclé.reg", My.Resources.nomDeMaCleRegistreDansMesRessources)
CLeBeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h11.


 
 
 
 
Partenaires

Hébergement Web