Vérifier l'existence d'un dossier [Résolu]

Messages postés
16
Date d'inscription
jeudi 14 septembre 2006
Dernière intervention
8 décembre 2006
- - Dernière réponse : neo2k2
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Dernière intervention
9 novembre 2009
- 3 sept. 2008 à 15:00
Bonjour, j'ai besoin de faire un script qui:
 -Vérifie l'existance d'un répertoire.
 -Si il existe, comparer la date d'un fichier et écraser si la date est inférieure.

J'ai réussi la deuxième partie. Le seul problème c'est que si le répertoire n'existe pas j'ai un message d'erreur. Si il n'existe pas j'aimerais ne pas vérifier la date du fichier.

Code:
Const OverwriteExisting = TRUE



Set objFSO = CreateObject("Scripting.FileSystemObject")



Set objLocalFile = objFSO.GetFile("C:\test\test.txt")
dtmLocalDate = objLocalFile.DateLastModified



Set objServerFile = objFSO.GetFile(
[file://\\serveur\source
\\serveur\source
]
)
dtmServerDate = objServerFile.DateLastModified



If dtmLocalDate < dtmServerDate Then
    objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
End If


Merci
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
47
3
Merci
Salut,

Regarde ce que tu as mis: DossierServeur = "[file://source/test/test.txt \\]source\test\test.txt"
Et regarde ce que je te proposais: DossierServeur = "\\Serveur\Source"

L'idee c'est que DossierServeur contienne le nom d'un répertoire. toi tu lui mets le nom d'un FICHIER 

@+,   Ju£i?n

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jrivet
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
If Dir(TonRepertoire,vbDirectory)<>"" Then
    'Toncode
Else
    MsgBox "Le répertoire n'existe pas"
End If

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
il existe la méthode FolderExists de ton objet FSO....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
Pas de Dir en vbs, Casy...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
RRRRRRRRRRR

xcuzmi, moâ pas connaitre vbs et pas fait attention que vbs non plus, surtout

Dsl

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
16
Date d'inscription
jeudi 14 septembre 2006
Dernière intervention
8 décembre 2006
0
Merci
En fait, si le répertoire n'existe pas, je ne veux pas de message. Si le répertoire n'est pas là "exit". Je suis un gars de réseau donc le vbscript est pour moi du chinois :) Est-ce que vous pouvez corriger mon code SVP?



Const OverwriteExisting = TRUE



Set objFSO = CreateObject("Scripting.FileSystemObject")



Set objLocalFile = objFSO.GetFile("C:\test\test.txt")
dtmLocalDate = objLocalFile.DateLastModified



Set objServerFile = objFSO.GetFile(
[file://\\serveur\source\test.txt
\\serveur\source\test.txt


]
)
dtmServerDate = objServerFile.DateLastModified



If dtmLocalDate < dtmServerDate Then
    objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
End If
Commenter la réponse de cs_Patrin
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
Const OverwriteExisting = TRUE



Set objFSO = CreateObject("Scripting.FileSystemObject")




If objFSO.FolderExists("C:\test\test.txt")=True Then
Set objLocalFile = objFSO.GetFile("C:\test\test.txt")
dtmLocalDate = objLocalFile.DateLastModified



Set objServerFile = objFSO.GetFile(
[file://serveur/source/test.txt
\\serveur\source\test.txt


]
)
dtmServerDate = objServerFile.DateLastModified



If dtmLocalDate < dtmServerDate Then
    objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
End If


End If

 Drikce 06
Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
Bonjour au fait!

 Drikce 06
Commenter la réponse de drikce06
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
47
0
Merci
Salut,
>859126 Patrin: Pourquoi ne pas essayer ce que te propose  =2359 Renfield

Utilise la fonction .FolderExists  ne ton FileSystemObject
LE seul truc c'est qu il faut que le nom du fichier et le nom du répertoire soient dans des variables séparer

Soit: (pas teste)
Dim DossierServeur 
Dim Fichier 
Dim DossierLocal 

Const OverwriteExisting =  True 

Set objFSO =  CreateObject ("Scripting.FileSystemObject") 
Fichier  = "Test.txt" 
DossierLocal = "C:\test" 
DossierServeur = "\\Serveur\Source" 
If objFSO.FolderExists(DossierServeur) And objFSO.FolderExists(DossierLocal) Then 
    Set objLocalFile = objFSO.GetFile(DossierLocal & Fichier) 
    dtmLocalDate = objLocalFile.DateLastModified 

    Set objServerFile = objFSO.GetFile(DossierServeur & Fichier) 
    dtmServerDate = objServerFile.DateLastModified 

    If dtmLocalDate < dtmServerDate Then 
        objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting 
    End If 
End If 

@+,   Ju£i?n
Commenter la réponse de jrivet
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
If objFSO.FolderExists("C:\test\test.txt")=True Then

pas possible, test.txt ressemble a un fichier, et non a un dossier.
FolderExists ne fonctionnera surement pas, en ce cas... utilises alors la méthode FileExists

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
Ah oui! dsl! j'ai pas fait gaf, mais c'est sur que si tu donnes le chemin du fichier en dur autant utiliser FileExists comme le dit Renfiel!

 Drikce 06
Commenter la réponse de drikce06
Messages postés
16
Date d'inscription
jeudi 14 septembre 2006
Dernière intervention
8 décembre 2006
0
Merci
Déjà, ça me semble un code plus logique que ce que j'avais fait :) Mais le problème c'est qu'il ne remplace pas le fichier... Mais il ne me retourne pas d'erreur. Merci pour l'aide!!! :) 



Dim DossierServeur
Dim Fichier
Dim DossierLocal



Const OverwriteExisting = True



Set objFSO = CreateObject("Scripting.FileSystemObject")
Fichier = "test.txt"
DossierLocal = "c:\test"
DossierServeur = "

[file://\\source\test\test.txt \\]

source\test\test.txt"
If objFSO.FolderExists(DossierServeur) And objFSO.FolderExists(DossierLocal) Then
    Set objLocalFile = objFSO.GetFile(DossierLocal & Fichier)
    dtmLocalDate = objLocalFile.DateLastModified



    Set objServerFile = objFSO.GetFile(DossierServeur & Fichier)
    dtmServerDate = objServerFile.DateLastModified



    If dtmLocalDate < dtmServerDate Then
        objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
    End If
End If
Commenter la réponse de cs_Patrin
Messages postés
16
Date d'inscription
jeudi 14 septembre 2006
Dernière intervention
8 décembre 2006
0
Merci
J'ai fait une erreur de débutant... Merci pour l'aide!!ça m'a donné le goût d'en connaître plus sur VBS.
Commenter la réponse de cs_Patrin
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Dernière intervention
9 novembre 2009
0
Merci
Un up 2 ans après qui marche en VBS et VB6:

Dim stPath ' Nom du chemin d'acces au dossier
Dim stFolder 'Nom du dossier
Dim oFSO,oFl
Dim Ans1, Ans2

stPath = "C:"
stFolder = "mon_dossier"



Set oFSO = CreateObject("Scripting.FileSystemObject")
' si le dossier n'existe pas, on le crée
If Not oFSO.FolderExists(stPath & stFName) Then
  'Crée le repertoire
  Set oFld=oFSO.CreateFolder (stPath & stFName)
'Else ' sinon on fait autre chose
'  MsgBox "Le répertoire " & stPath & stFName & " existe."
End If
Commenter la réponse de neo2k2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.