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 :

Copier le contenu d'un fichier dans de multiples fichiers cibles [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut Copier le contenu d'un fichier dans de multiples fichiers cibles
    Bonjour,

    je créé un programme simple qui doit me permettre la chose suivante :

    sélectionner un fichier source (.txt)
    sélectionner un répertoire cible
    copier ce fichier source sur tous les fichiers qui sont dans le répertoire sélectionné. En d'autre terme, j'ai dans mon répertoire les fichiers pomme1.txt, pomme2.txt et pomme3.txt, l'appli doit copier le contenu du fichier source dans les trois fichiers pomme.

    Pour l'instant j'en suis là:

    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
    37
    38
    39
    40
    41
    Imports System.IO
     
    Public Class Form1
        Dim myFolder As String
        Dim mySource As String
     
     
     
        Private Sub btnSource_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSource.Click
            srcDialog.Title = "Merci de choisir le fichier source (modèle)"
            srcDialog.ShowDialog()
        End Sub
     
        Private Sub srcdialog_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles srcDialog.FileOk
            Dim strm As System.IO.Stream
            Dim sourcefilepath As String
            strm = srcDialog.OpenFile
            sourcefilepath = srcDialog.FileName.ToString
            tboxSource.Text = sourcefilepath
            Dim mySource As String
            mySource = My.Computer.FileSystem.ReadAllText(sourcefilepath)
        End Sub
     
        Private Sub btnSelecttarget_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelecttarget.Click
            folderDialog.ShowDialog()
            tboxFolder.Text = folderDialog.SelectedPath
     
        End Sub
     
     
     
     
        Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
            For Each File In folderDialog.SelectedPath
     
                Microsoft.VisualBasic.FileIO.FileSystem.CopyFile()
     
            Next
     
        End Sub
    End Class
    C'est le plus simple, il me reste maintenant à utiliser filesystem.copyfile pour obtenir mon résultat mais je suis loin d'être certain de savoir l'utiliser!

    merci d'avance.

    (visual studio 10, vb.net 4.0, os cible windows xp)

  2. #2
    Membre chevronné Avatar de Vince
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    369
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 369

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut
    Merci de ta réponse! En revanche je tourne un peu en rond là... Si je comprends bien ce que je fais:
    J'instancie mon repertoire
    Je liste les fichiers à l'interieur avec myFolder.getFiles
    ...Et c'est là que je tourne en rond. Toutes les versions du code que j'ai essayé me retourne une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
     
            Dim myFolder As New System.IO.DirectoryInfo(myfolderpath)
            Dim dir As System.IO.FileInfo() = myFolder.GetFiles
            Dim item As IO.FileInfo
     
            For Each item As IO.FileInfo In dir
                System.IO.File.Copy(mySource, item, True)
     
            Next
            MessageBox.Show("operation effectuée")
        End Sub
    End Class
    Donc si j'ai bien compris, dir contient ma liste de cible, ce que je veux faire:

    For each item in dir
    system.io.file.copy(source,item,true)

    Mais ça ne fonctionne pas car file.copy ne veut pas prendre mes variables parce qu'elles sont des strings, raison pour laquelle j'ai déclaré as fileinfo, mais là ça ne marche pas non plus...


  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonsoir,

    Si j'ai tout bien compris, à partir d'un fichier texte, tu veux :
    Copier le contenu du fichier
    Ecrire le contenu de ce fichier dans tout les fichier .txt d'un dossier

    Si c'est ça, il te faut lire le contenu du fichier .txt source, mettre le texte dans une variable, ouvrir chaque fichier destination .txt et écrire dans ce fichier à partir du texte de la variable

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    lecture du contenu : dim contenu as string = system.io.file.Readalltext(chemin)

    si tu veux remplacer le contenu des fichiers cibles : system.io.file.writealltext(chemin, contenu)

    si tu veux ajouter le contenu à la suite des fichiers cibles, il faut faire du append
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut
    Super merci pour ces infos, je vois ce que j'arrive à pondre avec ça dès que j'ai le temps.

    EDIT :
    bon j'ai un "ArgumentNullException was unhandled" concernant cette ligne :

    Dim contenu As String = System.IO.File.ReadAllText(mySource)

    Je pense que ma variable mysource est pas accessible dans ce sub, pour en être sûr j'ai fait un
    messagebox.show(masource) et effectivement ça ne m'affiche rien. Est-ce que je dois déclarer le sub dans lequel j'affecte mySource en Public, ou je me met le doigt dans l'oeil?
    (le code est à la ligne 30à
    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
    37
    38
    39
    40
    41
    42
    43
    44
    Imports System.IO
     
    Public Class Form1
        Dim myfolderpath As String
        Dim mySource As String
     
     
     
        Private Sub btnSource_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSource.Click
            srcDialog.Title = "Merci de choisir le fichier source (modèle)"
            srcDialog.ShowDialog()
        End Sub
     
        Private Sub srcdialog_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles srcDialog.FileOk
            Dim strm As System.IO.Stream
            Dim sourcefilepath As String
            strm = srcDialog.OpenFile
            sourcefilepath = srcDialog.FileName.ToString
            tboxSource.Text = sourcefilepath
            Dim mySource As String
            mySource = My.Computer.FileSystem.ReadAllText(sourcefilepath)
        End Sub
     
        Private Sub btnSelecttarget_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelecttarget.Click
            folderDialog.ShowDialog()
            tboxFolder.Text = folderDialog.SelectedPath
     
        End Sub
     
        Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
            MessageBox.Show(mySource)
            MessageBox.Show(myfolderpath)
            Dim myFolder As String = folderDialog.SelectedPath.ToString
            Dim contenu As String = System.IO.File.ReadAllText(mySource)
     
            For Each file In myFolder
     
     
                System.IO.File.WriteAllText(file, contenu)
     
            Next
            MessageBox.Show("operation effectuée")
        End Sub
    End Class

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

Discussions similaires

  1. Copier une partie du contenue d'un fichier dans un autre fichier
    Par jvkd59 dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 18/09/2010, 15h49
  2. Réponses: 2
    Dernier message: 27/04/2009, 23h14
  3. Copier le contenu d'une ArrayList dans un fichier texte. Manque du texte.
    Par Pierre8r dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 08/08/2008, 20h32
  4. Copier contenu d'une feuille dans un autre fichier
    Par neo2k2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2007, 18h01
  5. Réponses: 4
    Dernier message: 28/08/2007, 17h11

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