IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème fonction file copy [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    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

  3. #3
    Membre actif Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Points : 269
    Points
    269
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewCopy = "C:\Users\CLeBeR\Desktop"
    Tu dois mettre le nom du fichier complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewCopy = "C:\Users\CLeBeR\Desktop\MonFichier.reg"

  4. #4
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    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

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    ... 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" ?

  6. #6
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    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 ?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    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é

  8. #8
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Je suis lycée mais j'apprends le VB par mes propres moyens, je suis en 1 ES donc aucune relations avec l'informatique ^^

  9. #9
    Membre actif Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Points : 269
    Points
    269
    Par défaut
    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 : 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
      ''' <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.

  10. #10
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    J'ai oublié de préciser que si j'utilise ce code pour extraire un .key sa marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  11. #11
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Sujet résolu ! J'ai trouvé le code qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     File.WriteAllText("C:\Nomdemaclé.reg", My.Resources.nomDeMaCleRegistreDansMesRessources)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème lors de copie d'une fonction V2.0
    Par cegehi dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/08/2013, 16h11
  2. [XL-2007] Problème lors de copie d'une fonction
    Par cegehi dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/08/2013, 00h15
  3. Problème de MessageBox avec File.Copy
    Par fedos dans le forum Développement Windows
    Réponses: 2
    Dernier message: 28/10/2011, 21h43
  4. Problème fonction file() sur hébergeur
    Par borisman dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2011, 21h56
  5. un problème avec le module File::Copy
    Par Aymen_bass dans le forum Modules
    Réponses: 6
    Dernier message: 14/09/2009, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo