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 :

Copie de dossier


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut Copie de dossier
    Hello

    Voila j'ai un dossier contenant un modele.dot et des images que j'ai besoin de copier sur le disque dur du user en spécifiant un chemin précis

    Donc premierement quel endroit serait le plus propice pour cela ?

    Ensuite, j'ai fait ce bout de code qui fait ce que je voulais en partant de fichier mis en ressource dans mon projet :
    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
     
    Sub CopieFichiers()
            Dim strDestinationImages As String = "C:\Temp\xxxxxx\Images\"
            Dim l_tableautitre(1) As String
     
     
           l_tableautitre(0) = "img1.png"
          l_tableautitre(1) = "img2.png"
     
     
            If My.Computer.FileSystem.DirectoryExists("C:\Temp\xxxxxx\Images\") = True Then
           Else
     
                My.Computer.FileSystem.CreateDirectory("C:\Temp\xxxxxx)
               My.Computer.FileSystem.CreateDirectory("C:\Temp\xxxxxx\Images")
               My.Computer.FileSystem.WriteAllBytes("C:\Temp\xxxxxx\Modele.dot", My.Resources.Modele, True)
     
                My.Resources.image1.Save(strDestinationImages & l_tableautitre(0))
               My.Resources.image2.Save(strDestinationImages & l_tableautitre(1))
     
            End If
     
        End Sub

    Sauf que si j'ai 50 images ça devient vite chiant... et je pense pas que la méthode soit la bonne, et ensuite ça marche pas ^^ ça fait planter l'appli à chaque fois... mais je ne sais pas pourquoi vu que j'ai un disque C et un dossier temp à la racine...



    Donc je me demandais, si vous pouviez, soit m'aider à corriger ce bout de code, soit me donner une solution alternative qui serait :
    Créer un dossier contenant tout ce que je veux, dans le dossier contenant mon projet, et le copier coller simplement en vb net, mais par contre je ne sais pas quel chemin il faut prendre pour spécifier le dossier source...

    Voila merci pour votre aide !

  2. #2
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    bonsoir :

    Code déjà proposé par Maniak en 2006 :

    http://www.developpez.net/forums/d88...ntenu-dossier/


    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
    Public Class DirectoryService
     
    	Public Shared Sub CopyDirectory(ByVal sourcePath As String, ByVal destinationPath As String)
    		CopyDirectory(New DirectoryInfo(sourcePath), New DirectoryInfo(destinationPath))
    	End Sub
     
    	Private Shared Sub CopyDirectory(ByVal source As DirectoryInfo, ByVal destination As DirectoryInfo)
    		destination.Create()
     
    		For Each file As FileInfo In source.GetFiles()
    			file.CopyTo(Path.Combine(destination.FullName, file.Name))
    		Next
     
    		For Each subDirectory As DirectoryInfo In source.GetDirectories()
    			CopyDirectory(subDirectory, destination.CreateSubdirectory(subDirectory.Name))
    		Next
    tu n'as plus qu'à renseigner les paths ...

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    Ok merci,

    Cependant je ne trouve pas comment utiliser le dossier source, j'aimerai compiler mon app avec mon dossier, je ne sais pas où le mettre, et ensuite quel chemin spécifier dans le code pour lui dire de copier ce dossier là

  4. #4
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    j'avais compris que tu avais un dossier séparé avec tes images dedans.

    si c'est une extraction de tes ressources de ton programme il faut faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Resources.Image1.Save(PathImage)
    mais je penses que ça dépend des types de fichier à extraire ...

    sinon quelques éléments dans ce tuto :

    http://plasserre.developpez.com/cour...windows-forms4

    mais cherches aussi les tutos sur le déploiement d'applis.

    bon code

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    j'avais compris que tu avais un dossier séparé avec tes images dedans.
    Oui voila c'est ce que je voudrai faire, mais où mettre ce fichu dossier comportant mes images ? et ensuite quel chemin mettre ? sa fait 40 min que je cherche comment mais je trouve pas -_-, j'ai essayer de mettre à la racine du projet, ensuite j'ai mis en path "Images" par exemple vu que c'est à la racine, mais rien n'y fait... je comprend pas comment on peut utiliser un dossier :'(

  6. #6
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    attends, reprenons à zéro, tu veux faire quoi ?

    1) faire une appli qui copie des fichiers images (et ou dossiers)

    ou

    2) déployer une appli qui utilise des fichiers images

    ou

    ... ?

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    Je veux déployer une appli qui utilise des fichiers image contenu dans un dossier


    Mon problème : je ne sais pas comment faire, que faire de mon dossier qui doit être copier sur le disque du user

  8. #8
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    As-tu parcouru les tutos de déploiement ?

    par exemple (à adapter à ta version VB) :

    http://plasserre.developpez.com/cour...iffuser#LXIV-B

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    Voila ce que j'ai trouvé d'intéressant :


    Comment inclure des fichiers?

    Il suffit de glisser les fichiers que nous voulons ajoutons dans le dossier "Bin" dans l'explorateur de solution; ensuite les fichiers de type image ou autre seront installés sur le poste du client et pour nous développeurs, il suffira d'indiquer leurs chemins de cette manière : "Bin\nomDuFichier.extension".

    J'ai fais ce qui est dit, j'ai ajouter mon dossier dans Bin, mais le programme ne trouve tjrs pas le dossier...
    CopyDirectory("Bin\Mon dossier", "C:\Temp\")

    Même chose si je met juste un fichier...

  10. #10
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    je penses que tu confonds les infos que je t'ai données ne sachant pas ce que tu voulais faire réellement.

    tu me dis que tu veux déployer ton appli VB

    donc en clair tu veux l'installer sur des postes autres que le tiens, on es bien d'accord.

    donc si tu déploies ton appli VB : utilises l'assistant et/ou le(les) tuto(s) de déploiement (ou = de publication) et tu fais pas à pas ce qu'il te demande.

    Sinon la sub CopyDirectory te permets de gérer des copies de dossiers par ton appli VB.

    NE MELANGES PAS TOUT.

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    wouaaaaaaaaaaaah ce dossier va me rendre fou alala, ^^


    je sais même pas si on se comprend là ^^

    En gros, actuellement :

    J'ai mon projet, à l'intérieur j'ai des ressources images, je les copies lors du déploiement dans un dossier du user, cependant je vais avoir genre 50 images, donc 50 images une à une dans les ressources c'est pas propre

    Donc je me suis dit que j'allais créer un dossier qui allait contenir tout ce dont j'avais besoin comme image, et ce dossier je le copierai sur le poste du user, comme ça dans mon programme je fais référence au chemin du dossier sur le poste user

    Sauf que malgrés la lecture de la doc, je ne trouve pas comment faire ce que je viens de dire, j'ai un dossier actuellement sur mon bureau, comment l'intégrer dans mon projet, et ensuite dire dans mon programme "prend ce dossier du projet et colle le chez le user dans C:/Temp"


    Autrement j'arrive très bien à déployer mon appli vu que je l'ai tester sur d'autres posts... mais je ne sais pas gérer ce fichu dossier

  12. #12
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    en fait je ne sait pas à quoi correspond ton appli.

    est-ce que tes images sont nécessaires au fonctionnement (visuel) de ton appli genre background de contrôles ou de forms, icônes de menu ou de boutons ,...

    alors tu as pu les importer (gestionnaire de propriétés / sélection d'une ressource) pour les utiliser et elles sont déjà dans les ressources de ton appli (tu peux les voir dans un dossier ressources en parcourant ton explorateur de solutions)

    donc tu dois pouvoir inclure ces ressources dans ton déploiement, non ?

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    enfaite mon appli en gros prend des images et les mets dans un doc word, et ensuite enregistre le doc word, donc à la fin du traitement j'obtiens un doc word avec des images dedans.

    donc elles ne sont pas nécessaires au fonctionnement de l'appli

    j'ai donc pu effectivement les importer dans mes ressources :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     My.Computer.FileSystem.WriteAllBytes("C:\Temp\xxxxxx\Modele.dot", My.Resources.Modele, True)
     
    My.Resources.image1.Save(strDestinationImages & l_tableautitre(0))
    Sauf que dans les ressources on peut mettre les fichiers que 1 par 1... et quand bien même je ferai cela, dans mon premier post je dis que justement ça me fait planter mon appli

    d'où mon besoin, qui au final correspond mieux, de copier coller un dossier chez le user tout simplement



    Mais personnellement je pensais que c'était possible, donc à moins que tu voies ce que je veux dire et que tu me proposers une solution ok, sinon si tu me dis que je dois regarder ailleurs pour faire ça, oki

    Mais bon prend un dossier de son projet et le coller chez un user pour moi je pensais que c'était un jeu d'enfant ^^


    Donc je te propose un truc si t'as le temps pour bien visualiser le truc, j'ai mis en pièce jointe, un dossier contenant un projet WPF application vide... et un dossier Images

    Le but c'est de dire dans le code de wpf application de prendre ce dossier et de le coller chez le user lors de l'install ou lors du chargement de la fenêtre principale (donc ce dossier doit être présent lors du déploiement)

    Comme dit depuis le début de soirée (oui j'y suis tjrs pas arrivé..) je n'arrive pas à intégré mon dossier dans mon projet pour l'utiliser en tant que dossier, et donc ensuite utiliser la procédure de copy de dossier

    Merci

    J'espère que j'aurai fini avec ça demain soir car c'est le seul truc qui manque :'(
    Fichiers attachés Fichiers attachés

  14. #14
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    ah on y arrive,

    attention je crois que les déploiements sont différents avec les versions express et professionnelle (il me semble que l'on ne peut pas systématiquement inclure des dossiers,... à vérifier)

    mais si tes fichiers sont dans tes ressources (exemple de copie dans le répertoire Temp) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.IO.File.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp + "\Modele.dot", My.Resources.Modele)
     
    System.IO.File.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp + "\img1.png", My.Resources.Img1)
    ...
    sinon j'ai trouvé ça, l'as-tu vu :

    http://www.jrsoftware.org/isdl.php

    bonne lecture !

  15. #15
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    J'ai une version normale, enfin pas Express quoi,

    Ta solution ne me convient pas, car dans l'avenir je mettrai à disposition de nouvelles images pour l'utilisateur qu'il collera lui même dans le répertoire de destination.

    Merci pour le lien.

    Pour InnoSetup enfaite je l'avais déjà tester, mais ça m'était pas venu à l'idée de mettre un dossier perso, donc je viens de tester, et le dossier apparait bien dans programfiles, donc dans mon programme il suffirait je pense ensuite que je mette le chemin en dur
    C:\Program Files\monapp\mondossieracopier

    et ça devrait fonctionner


    Sauf que avec InnoSetup ce que je n'aime pas c''est qu'il prend un setup.exe de l'appli, donc quand on installe, il installe ce qu'on lui a dit, et ensuite y'a notre programme publier avec visual studio qui s'installe aussi, donc c'est pas top... dans mes programmes j'ai ensuite un dossier de mon application, et un autre dossier "Microsoft" avec mon application publié par visual studio...une idée pour que ça lance qu'une install ?


    Donc le top ce serait de faire la même chose avec visual studio uniquement, j'ai voulu tester en utilisant à nouveau le dossier Bin, mais je me suis trompé donc faudra que je retest...mais je pense pas que ça fonctionne de toute manière car une fois compiler le dossier Bin n'existe plus donc difficile d'utiliser un chemin comportant un dossier n'existant pas.


    Autrement, la copie des dossier je le fais à l'ouverture d'une fenêtre avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI dossier existe = vrai alors 
    rien
    sinon 
    copie le dossier
    FIN SI
    Est-ce que je peux faire ça quelque part lors de l'install plutôt ? si oui dans quel fichier je dois mettre ce code ?

    EDIT : je viens de trouver ça qui pourrait convenir mais sans vraiment savoir comment ajouter des dossiers à l'install car ils parlent que de fichiers... et ça a pas l'air simple en + enfin on verra

    EDIT 2 : je viens de tester un projet de déploiement visual studio, ça a l'air pas mal d'après les tests ça me créé un dossier dans programfiles et un executable, je testerai tout ça à midi donc

    Merci

  16. #16
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    Bon alors le déploiement fonctionne, cependant tjrs le même problème lors de la copie du dossier,

    Mon appli plante, comment je peux récupérer le chemin de l'install ? car y'a Program Files (x86) ou Program Files tout court, donc ça dépend de l'os

  17. #17
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Essaye de faire une routine qui gère les OS en utilisant la propriété OSVersion de la classe System.Environment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		'Version du système d'exploitation
    		Dim ver as Version = Environment.OSVersion
    		Console.WriteLine("Version Framework = {0}", ver)

  18. #18
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    Tout fonctionne, merci hunteshiva et grand merci a anonymousse

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/11/2007, 21h02
  2. Copie de dossiers
    Par taly dans le forum Langage
    Réponses: 1
    Dernier message: 02/08/2006, 21h08
  3. Copie de dossiers
    Par CrazySeb dans le forum Général Java
    Réponses: 15
    Dernier message: 29/04/2006, 01h47
  4. [Système] Copie de dossiers
    Par neXistPa dans le forum Langage
    Réponses: 4
    Dernier message: 08/01/2006, 12h49

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