Vérifier l'existence d'un dossier

Résolu
cs_Patrin Messages postés 16 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 8 décembre 2006 - 19 sept. 2006 à 10:10
neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre 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

14 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 sept. 2006 à 11:25
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 sept. 2006 à 10:17
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 #
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
19 sept. 2006 à 10:18
il existe la méthode FolderExists de ton objet FSO....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
19 sept. 2006 à 10:19
Pas de Dir en vbs, Casy...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 sept. 2006 à 10:22
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 #
0
cs_Patrin Messages postés 16 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 8 décembre 2006
19 sept. 2006 à 10:34
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
0
drikce06 Messages postés 2237 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 11
19 sept. 2006 à 10:45
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
0
drikce06 Messages postés 2237 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 11
19 sept. 2006 à 10:45
Bonjour au fait!

 Drikce 06
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 sept. 2006 à 10:46
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
19 sept. 2006 à 10:47
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
0
drikce06 Messages postés 2237 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 11
19 sept. 2006 à 10:55
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
0
cs_Patrin Messages postés 16 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 8 décembre 2006
19 sept. 2006 à 11:17
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
0
cs_Patrin Messages postés 16 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 8 décembre 2006
19 sept. 2006 à 11:30
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.
0
neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 9 novembre 2009 3
3 sept. 2008 à 15:00
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
0