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

VBScript Discussion :

Copier le contenu d'un dossier vers un autre dossier avec traitement spécifique


Sujet :

VBScript

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut Copier le contenu d'un dossier vers un autre dossier avec traitement spécifique
    Bonjour,

    J'ai un dossier qui contient des fichiers et des sous-dossiers.
    Je veux lister le contenu de ce dossier et copier tous les fichiers et dossiers vers un autre répertoire.
    Le problème est que pour les fichiers .txt, je ne veux faire faire une simple copie, je veux faire un traitement spécifique du contenu.

    Pour le moment, j'arrive à liste le contenu de mon dossier source.
    Mais comment fait-on pour construire le nom des fichiers/dossiers de sortie vu que les chemins sont relatifs ?

    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
     
    Function run()
    	Dim fso, textStreamDbg
     
    	Set fso = CreateObject("Scripting.FileSystemObject") 
    	Set textStreamDbg = fso.CreateTextFile(dbgFilename, true) 
    	ParcourDossier textStreamDbg, inputDirectory, outputDirectory
    	textStreamDbg.Close
    End Function
     
     
    Function ParcourDossier(textStreamDbg, directoryIn, directoryOut)
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set folder = fso.GetFolder(directoryIn)
        Set subfolders = folder.SubFolders
        Set subfiles = folder.Files
     
        for each objFolder in subfolders
            'textStreamDbg.WriteLine(objFolder.Name)
            ParcourDossier textStreamDbg, objFolder, directoryOut
        next
     
        for each objFile in subfiles
            'textStreamDbg.WriteLine("  " & objFile.Path)
    		'textStreamDbg.WriteLine("  " & objFile.Name)
    		parseFile textStreamDbg, objFile, directoryOut
        next
    End Function
    Merci d'avance,

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Je m'auto-réponds : c'est bon, j'ai trouvé la solution

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    Function run()
    	Dim fso, textStreamDbg
    	Set fso = CreateObject("Scripting.FileSystemObject") 
     
    	' *********************************
    	' Nettoyage du dossier de sortie
    	If FolderExists(outputDirectory) = true Then
    		fso.DeleteFolder outputDirectory, True
    	End If
    	fso.CreateFolder outputDirectory
    	Set folderOut = fso.GetFolder(outputDirectory)
     
    	' *********************************
    	Set fso = CreateObject("Scripting.FileSystemObject") 
    	Set textStreamDbg = fso.CreateTextFile(dbgFilename, true) 
    	ParcourDossier textStreamDbg, inputDirectory, ifDefList, folderOut
    	textStreamDbg.Close
    End Function
     
     
    Function FolderExists(strFolderPath)
    	Dim fileObject
    	Set fileObject = CreateObject("Scripting.FileSystemObject")
     
    	On Error Resume Next ' Si erreur, continuer
    	FolderExists = fileObject.FolderExists(strFolderPath)
    	If Err.number <> 0 Then
    		FolderExists = False
    		Call Err.Clear()
    	End If
    	On Error Goto 0
    	Set fileObject = Nothing
    End Function
     
     
    Function ParcourDossier(textStreamDbg, directoryIn, folderOut)
        Dim fso, folder, subfolders, subfiles
    	Dim subfolderOut, subfolderOut_name, fileOut_path
     
    	Set fso = CreateObject("Scripting.FileSystemObject")
        Set folder = fso.GetFolder(directoryIn)
        Set subfolders = folder.SubFolders
        Set subfiles = folder.Files
     
        for each objFolder in subfolders
            'textStreamDbg.WriteLine(objFolder.Name)
     
    		subfolderOut_name = folderOut.Path & "\" &  objFolder.Name
    		fso.CreateFolder subfolderOut_name
    		Set subfolderOut = fso.GetFolder(subfolderOut_name)
     
            ParcourDossier textStreamDbg, objFolder, subfolderOut
        next
     
        for each objFile in subfiles
            'textStreamDbg.WriteLine("  " & objFile.Path)
    		'textStreamDbg.WriteLine("  " & objFile.Name)
     
    		fileOut_path = folderOut.Path & "\" & objFile.Name
     
    		parseFile textStreamDbg, objFile, fileOut_path
        next
    End Function

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

Discussions similaires

  1. [MySQL] Copier le contenu d une base vers une autre
    Par joboy84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/07/2008, 11h28
  2. Réponses: 7
    Dernier message: 17/10/2007, 08h32
  3. Copier le contenu d'un fichier vers un autre fichier Excel
    Par mathias dans le forum VBA Access
    Réponses: 4
    Dernier message: 13/06/2007, 14h47
  4. [VBA-E]Copier le contenu d'une cellule vers une autre
    Par idir.17 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 26/03/2007, 16h50
  5. Réponses: 12
    Dernier message: 22/02/2006, 15h28

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