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

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

jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 19 sept. 2006 à 11:25
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jrivet
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 19 sept. 2006 à 10:17
0
Utile
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
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 19 sept. 2006 à 10:18
0
Utile
il existe la méthode FolderExists de ton objet FSO....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 19 sept. 2006 à 10:19
0
Utile
Pas de Dir en vbs, Casy...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 19 sept. 2006 à 10:22
0
Utile
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
cs_Patrin 16 Messages postés jeudi 14 septembre 2006Date d'inscription 8 décembre 2006 Dernière intervention - 19 sept. 2006 à 10:34
0
Utile
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
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 19 sept. 2006 à 10:45
0
Utile
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
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 19 sept. 2006 à 10:45
0
Utile
Bonjour au fait!

 Drikce 06
Commenter la réponse de drikce06
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 19 sept. 2006 à 10:46
0
Utile
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
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 19 sept. 2006 à 10:47
0
Utile
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
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 19 sept. 2006 à 10:55
0
Utile
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
cs_Patrin 16 Messages postés jeudi 14 septembre 2006Date d'inscription 8 décembre 2006 Dernière intervention - 19 sept. 2006 à 11:17
0
Utile
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
cs_Patrin 16 Messages postés jeudi 14 septembre 2006Date d'inscription 8 décembre 2006 Dernière intervention - 19 sept. 2006 à 11:30
0
Utile
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
neo2k2 126 Messages postés jeudi 16 janvier 2003Date d'inscription 9 novembre 2009 Dernière intervention - 3 sept. 2008 à 15:00
0
Utile
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.