1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :
Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :
Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :
Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
Les caractères suivants sont interdits dans la nomination
d'un répertoire : / * ? | " < > :
Si dans ton panneau de configuration tu as "/" comme
séparateur de date, tu as un problème avec ceci :
La_date = FormatDateTime(Now, 2)
Une alternative :
La_date = Day(Now) & "-" & Month(Now) & "-" & Year(Now())
"Alain Lebayle" a écrit dans le message de groupe de
discussion : ek$
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " & La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Alain
Jacques93 a écrit :1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
Les caractères suivants sont interdits dans la nomination
d'un répertoire : / * ? | " < > :
Si dans ton panneau de configuration tu as "/" comme
séparateur de date, tu as un problème avec ceci :
La_date = FormatDateTime(Now, 2)
Une alternative :
La_date = Day(Now) & "-" & Month(Now) & "-" & Year(Now())
"Alain Lebayle" <alain.lebayle@club-internet.fr> a écrit dans le message de groupe de
discussion : ek$kqli2KHA.4016@TK2MSFTNGP05.phx.gbl...
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " & La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Alain
Jacques93 a écrit :
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :
Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
Les caractères suivants sont interdits dans la nomination
d'un répertoire : / * ? | " < > :
Si dans ton panneau de configuration tu as "/" comme
séparateur de date, tu as un problème avec ceci :
La_date = FormatDateTime(Now, 2)
Une alternative :
La_date = Day(Now) & "-" & Month(Now) & "-" & Year(Now())
"Alain Lebayle" a écrit dans le message de groupe de
discussion : ek$
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " & La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Alain
Jacques93 a écrit :1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :
La_date = FormatDateTime(Now, 1)
génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser
La_date = FormatDateTime(Now, 2)
qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :
dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If
Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :
<Citation michdenis>
C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
</Citation michdenis>
est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :
For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next
NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.
--------------------------------------------------------------------
2 - > "C:Documents and SettingsmicroApplication
> DataThunderbirdProfiles*.defaultprefs.js"
Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?
Alain Lebayle a écrit :Bonsoir Jacques93
1 - En fait une fois que les fichiers sont copiés, il y a une
extension qui est une date, ils se trouvent dans le dossier
C:PREFS.JS, je souhaite que les fichiers de plus de 3 mois puissent
être supprimés automatiquement ceci afin d'alléger le dossier. Merci
pour la piste, mais malgré mes essais, je n'y arrive pas.
2 - Ta proc fonctionne admirablement bien, mais est-il possible
d'avoir également la version avec "micro" à la place de Appdata à
savoir :
"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"
Je t'assure que j'ai vraiment passé un temps fou à essayer de
décripter la procédure afin de la modifier mais y'a pas moyen.
Voilà la procédure définitive :
Merci
Alain
Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)
Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")
Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")
Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next
'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if
Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date
function copy(old_,new_)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function
Set fso = Nothing
Set wsh = Nothing
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " & La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " & La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " & La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Oui, effectivement, ça m'apprendra à ne pas tester ...
'/' est un caractère interdit dans les noms de fichier, ainsi que :
: * ? " < > |
Avant la copie il faut donc le remplacer par '_' par exemple :
La_date = Replace(La_date, "/", "_")
et lors du nettoyage de ton répertoire destination, faire l'inverse afin
que DateDiff 'voit' bien une date :
dt = Replace(dt, "_", "/")
If DateDiff ("m", dt,Now) ...
Alain Lebayle a écrit :Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " &
La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Oui, effectivement, ça m'apprendra à ne pas tester ...
'/' est un caractère interdit dans les noms de fichier, ainsi que :
: * ? " < > |
Avant la copie il faut donc le remplacer par '_' par exemple :
La_date = Replace(La_date, "/", "_")
et lors du nettoyage de ton répertoire destination, faire l'inverse afin
que DateDiff 'voit' bien une date :
dt = Replace(dt, "_", "/")
If DateDiff ("m", dt,Now) ...
Alain Lebayle a écrit :
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " &
La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Oui, effectivement, ça m'apprendra à ne pas tester ...
'/' est un caractère interdit dans les noms de fichier, ainsi que :
: * ? " < > |
Avant la copie il faut donc le remplacer par '_' par exemple :
La_date = Replace(La_date, "/", "_")
et lors du nettoyage de ton répertoire destination, faire l'inverse afin
que DateDiff 'voit' bien une date :
dt = Replace(dt, "_", "/")
If DateDiff ("m", dt,Now) ...
Alain Lebayle a écrit :Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " &
La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Bonsoir,
Décidément, je ne dois pas être vraiment doué, mais bon, ça je le savais
;-)
Voilà, un vraiment très long moment que je m'échine à essayer de faire
fonctionner cette procédure, j'ai beaucoup de mal à adapter sachant que
le dossier est "C:PREFS_JS"
Alain
Jacques93 a écrit :Oui, effectivement, ça m'apprendra à ne pas tester ...
'/' est un caractère interdit dans les noms de fichier, ainsi que :
: * ? " < > |
Avant la copie il faut donc le remplacer par '_' par exemple :
La_date = Replace(La_date, "/", "_")
et lors du nettoyage de ton répertoire destination, faire l'inverse
afin que DateDiff 'voit' bien une date :
dt = Replace(dt, "_", "/")
If DateDiff ("m", dt,Now) ...
Alain Lebayle a écrit :Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " &
La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Bonsoir,
Décidément, je ne dois pas être vraiment doué, mais bon, ça je le savais
;-)
Voilà, un vraiment très long moment que je m'échine à essayer de faire
fonctionner cette procédure, j'ai beaucoup de mal à adapter sachant que
le dossier est "C:PREFS_JS"
Alain
Jacques93 a écrit :
Oui, effectivement, ça m'apprendra à ne pas tester ...
'/' est un caractère interdit dans les noms de fichier, ainsi que :
: * ? " < > |
Avant la copie il faut donc le remplacer par '_' par exemple :
La_date = Replace(La_date, "/", "_")
et lors du nettoyage de ton répertoire destination, faire l'inverse
afin que DateDiff 'voit' bien une date :
dt = Replace(dt, "_", "/")
If DateDiff ("m", dt,Now) ...
Alain Lebayle a écrit :
Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " &
La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???
Bonsoir,
Décidément, je ne dois pas être vraiment doué, mais bon, ça je le savais
;-)
Voilà, un vraiment très long moment que je m'échine à essayer de faire
fonctionner cette procédure, j'ai beaucoup de mal à adapter sachant que
le dossier est "C:PREFS_JS"
Alain
Jacques93 a écrit :Oui, effectivement, ça m'apprendra à ne pas tester ...
'/' est un caractère interdit dans les noms de fichier, ainsi que :
: * ? " < > |
Avant la copie il faut donc le remplacer par '_' par exemple :
La_date = Replace(La_date, "/", "_")
et lors du nettoyage de ton répertoire destination, faire l'inverse
afin que DateDiff 'voit' bien une date :
dt = Replace(dt, "_", "/")
If DateDiff ("m", dt,Now) ...
Alain Lebayle a écrit :Bonjour Jacques93,
Le problème est que le format date "La_date = FormatDateTime(Now, 2)"
refuse la copy soit "Copy Origine,"C:PREFS_JSprefs.js" & " du " &
La_date
alors qu'avec "La_date = FormatDateTime(Now, 1)" il accepte la copie ???