Page 1 sur 1
[R] Supprimer l'extension d'un fichier
Posté : mar. 22 avr. 2008 18:36
par Vins83
Bonsoir à tous,je crois que le titre du sujet est assez claire,je cherche à supprimer l'extension de fichiers *.html ,quelqu'un serait il comment faire celà.
Vins83.html en Vins83
J'suis sûr que ça doit etre tout bete,mais pas moyen de trouver,ou j'utilise pas le bon truc..
Merci beaucoup
Re: [..] Supprimer l'extension d'un fichier
Posté : mer. 23 avr. 2008 00:26
par arrkhan
je pense que comme ca, ca doit le faire
Edit: Pourquoi as-tu posté dans "Création de script" ?
Re: [..]Supprimer l'extension d'un fichier
Posté : mer. 23 avr. 2008 06:31
par Vins83
Le probleme c'est que si je veux copier plusieurs fichiers c'est là que j'ai un probleme
ça
ou ça
ne fonctionne pas...
Pour un fichier qui est connu,effectivement pas de probleme,mais dison que nous ne connaissons pas le nom des fichiers..
Merci .
Re: [..]Supprimer l'extension d'un fichier
Posté : mer. 23 avr. 2008 09:35
par tofu
Bonjour,
Je ne sais pas si j'ai bien cerné ton problème, j'ai réalisé un petit script montrant un exemple de copie de fichier puis renommant ensuite les fichiers ayant été copiés de façon à supprimer leur extension, j'espère que cela pourra t'aider dans ce que tu veux faire.
Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
$dirStart = @ScriptDir & "\" ; Dossier de départ où sont stockés les fichiers à copier
$dirTarget = @ScriptDir & "\vins\" ; Dossier cible
FileCopy($dirStart & "*.html",$dirTarget,9) ; On copie nos fichiers dans le dossier cible voulu
$listeFichiers =_FileListToArray($dirTarget) ; On récupère la liste des fichiers du dossier cible
_ArrayDelete($listeFichiers,0) ; On supprime la case "0" pour ne garder que les noms des fichiers du dossier cible
For $element IN $listeFichiers ; Pour chaque élément du tableau contenant la liste des fichiers du dossier cible
$nom = StringSplit($element,".") ; on découpe le fichier pour récupérer uniquement le nom dans $nom[1]
FileMove($dirTarget & $element,$dirTarget & $nom[1],9) ; On déplace le fichier au même endroit mais en le renommant uniquement avec le nom sans l'extension
Next
Je pense que les commentaires explicitent assez bien, cela dit si tu désires des précisions sur certains points n'hésites pas.
Cordialement,
Re: [..]Supprimer l'extension d'un fichier
Posté : mer. 23 avr. 2008 19:27
par Vins83
Merci beaucoup,j'ai modifié juste un petit truc pour virer juste les 5 derniers caractéres
Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
$dirStart = @ScriptDir & "\" ; Dossier de départ où sont stockés les fichiers à copier
$dirTarget = @ScriptDir & "\vins\" ; Dossier cible
FileCopy($dirStart & "*.html",$dirTarget,9) ; On copie nos fichiers dans le dossier cible voulu
$listeFichiers =_FileListToArray($dirTarget) ; On récupère la liste des fichiers du dossier cible
_ArrayDelete($listeFichiers,0) ; On supprime la case "0" pour ne garder que les noms des fichiers du dossier cible
For $element IN $listeFichiers ; Pour chaque élément du tableau contenant la liste des fichiers du dossier cible
$nom = StringTrimRight ($element,5) ; on découpe le fichier pour récupérer uniquement le nom dans $nom[1]
FileMove($dirTarget & $element,$dirTarget & $nom,9) ; On déplace le fichier au même endroit mais en le renommant uniquement avec le nom sans l'extension
Next
Avec StringTrimRight sa passe trés bien..
Merci a tous
Re: [R]Supprimer l'extension d'un fichier
Posté : mer. 23 avr. 2008 19:34
par tofu
Oui c'est sur avec le trim ça fonctionne dans le cas présent.
En fait, j'avais utilisé le split de façon à rendre ça assez générique ne sachant pas si au final cela te servirait uniquement pour des fichiers html où pour d'autres extensions également. (Puis, si ça peut servir à d'autres, autant qu'ils aient directement quelque chose de plus générique

)
Cordialement,
Re: [R] Supprimer l'extension d'un fichier
Posté : jeu. 24 avr. 2008 00:11
par Tlem
Juste pour le fun, et pour ne pas utiliser d'Include
Code : Tout sélectionner
$dirSearch = @ScriptDir & "\" ; Répertoire des fichiers à renommer.
$search = FileFindFirstFile($dirSearch & "*.html") ; Recherche tous les fichiers html du répertoire.
; Vérifie si la recherche est fructueuse.
If $search = -1 Then
MsgBox(0, "Erreur", "Aucun fichiers trouvé")
Exit
EndIf
; Boucle de recherche.
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
; Pour récupérer le nom sans l'extention (Si on s'en tient à html le code suivant peut être
; trés simplifier).
$FileNoExt = StringTrimRight($file, StringLen($file) + 1 - StringInStr($file, ".", 0, -1))
; On renomme.
FileMove($dirSearch & $file, $dirSearch & $FileNoExt, 1)
WEnd
; Ferme le handle de recherche
FileClose($search)