Page 1 sur 1

[R] Renommer automatiquement un fichier

Posté : mar. 03 janv. 2012 20:22
par jeanmimigab
Bonsoir tlm et bonne année...

Voilà mon souci...

Je voudrais copier un fichier.txt dans un dossier qui contient déjà un fichier.txt du même nom mais sans l'écraser...

Si j'utilise filecopy ou filemove >> FileCopy("rapport.txt", @scriptdir & "\BACKUP\rapport.txt", 1) ou >> FileMove("rapport.txt", @scriptdir & "\BACKUP\rapport.txt", 1)

L'ancien rapport est écrasé :?

Je voudrait savoir si une fonction permettrai de renommer automatiquement le fichier lors de sa copie (par exemple en ajoutant [1] ( fichier[1].txt, fichier[2].txt etc....) ou bien par exemple ajouter une date+heure à la fin du nom ( fichier_date_heure.txt )

Sans me donner la solution clef en main, pourriez vous m'indiquer une fonction qui serait adéquate ( l'aide de filecopy et filemove ne parle pas de cette option )

merci d'avance :wink:

Re: [..] Renommer automatiquement un fichier

Posté : mar. 03 janv. 2012 20:37
par PandiPanda
Il vous suffit de vérifier si dans le dossier ou vous voulez copié le fichier existe deja avec le meme nom
FileExists ( "path" )
Et ensuite faire les modification nécessaire dans la partie "dest".

Code : Tout sélectionner

FileCopy ( "source", "dest" [, flag] )

Re: [..] Renommer automatiquement un fichier

Posté : mar. 03 janv. 2012 21:50
par lesolutionneur
Il demandait automatique mais oui, c'est la solution, après, le mieux est de lister les fichiers pour vérifier la présence de [1], [2], [3]...

Ou alors faire une boucle while genre :

Code : Tout sélectionner

$path ="Z:\machin\truc\chose\bidule\Document Secret"
$work = $path
$i = 1
While not FileExists ($work)
$i = $i + 1
$work = $path & "[" & $i & "]"
Wend
 
J'espère t'avoir aidé ;)

Re: [..] Renommer automatiquement un fichier

Posté : mer. 04 janv. 2012 09:53
par DimVar
Personnellement, j'aurais opté pour un horodatage. Quasi aucun risque d’écraser.
Soit la commande suivante :

Code : Tout sélectionner

FileCopy ($source,$nomDeFichier & @HOUR & "_" & @MIN & "_" & @SEC,8)
Tout dépends de la fréquence à laquelle tu créés les fichiers.
Si c'est quotidien, tu peux rajouter @mday au debut de l'horodatage.

Cdlt.

Re: [..] Renommer automatiquement un fichier

Posté : mer. 04 janv. 2012 20:31
par jeanmimigab
Bonsoir les amis,

Que de solutions proposées :D

J'ai opté pour celle qui correspond le mieux à mon attente (celle de DimVar) et qui en plus c'est la plus simple pour mon faible niveau... :mrgreen:

Code : Tout sélectionner

$source = "MyJob.txt"
$nomDeFichier = @scriptdir & "\BACKUP\Rapport_MyJob_du_"
FileCopy ($source,$nomDeFichier & @MDAY & "_" &@MON & "_" &@YEAR & "_" & @HOUR & "_" & @MIN & "_" & @SEC & ".txt",8)
Grâce à vous j'ai encore appris beaucoup de choses....

Merci beaucoup à tout le monde pour le coup de pouce :wink:

JM

Re: [R] Renommer automatiquement un fichier

Posté : jeu. 05 janv. 2012 14:05
par jchd
Attention, ce code peut parfaitement ne pas fonctionner comme prévu et créer des fichiers avec une date incohérente ou complètement décalée dans le temps... ou écraser des fichiers déjà existants.

A ne pas utiliser dans un contexte "sérieux" !

Re: [R] Renommer automatiquement un fichier

Posté : jeu. 05 janv. 2012 14:11
par DimVar
jchd a écrit :...créer des fichiers avec une date incohérente ou complètement décalée dans le temps... ou écraser des fichiers déjà existants.
Bonjour,

Dans quel cas ?

Merci.

Re: [R] Renommer automatiquement un fichier

Posté : jeu. 05 janv. 2012 14:30
par jchd
Un indice : les macros @SEC ... sont collectées à la suite, pas en une seule opération ininterruptible.
Donc si on est à la seconde 59 et 999ms, on peut capter @SEC = 59 puis au moment où l'interpréteur parvient à @MIN, récupérer la minute suivante.

Dominos culbuteurs sur minute, heure, jour, mois, année.

La contre-attaque est là.

Re: [R] Renommer automatiquement un fichier

Posté : jeu. 05 janv. 2012 14:37
par DimVar
OK, merci pour l'info. (risque minime tout de même)

Re: [R] Renommer automatiquement un fichier

Posté : jeu. 05 janv. 2012 14:54
par jchd
... sur lequel je ne parierais pas ma vie.

Re: [R] Renommer automatiquement un fichier

Posté : ven. 06 janv. 2012 00:36
par Tlem

Re: [R] Renommer automatiquement un fichier

Posté : ven. 06 janv. 2012 12:26
par jchd
Si tu étais mieux rasé ou plutôt une gentille modette, je te ferais un gros poutou pour ça.
En attendant, je te félicite chaleureusement :)