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

Code : Tout sélectionner

FileMove("c:\fichier.html", "C:\fichier", 1)(
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

Code : Tout sélectionner

FileCopy("*.html",@ScriptDir & "\vins\*.*",9)
ou ça

Code : Tout sélectionner

FileCopy("*.html",@ScriptDir & "\vins\*",9)
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 :wink: )

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)