Rechercher : dans
Par :

Renommer un fichier sous DOS

Dernière réponse le 20 sep 2007 à 23:34:53 David, le 14 fév 2003 à 22:33:35 
 Signaler ce message aux modérateurs

Bonjour,

Je cherche a créer un programme C qui va renommer des fichiers contenu dans un répertoire. Pour les renommer, je fais appel a une liste qui contient l'ancien nom du fichier et le nouveau a coté. Jusque là pas de problèmes, je mets ma commande : system (z) ou j'ai préalablement concaténé a z la commande "RENAME" et les paramètre "image1.jpg" "image2.jpg" qui correspondent respectivement aux anciens et nouveaux noms de fichiers.

C'ets là que je bloque : je souhaiterais pouvoir renommer mes fichier par des noms qui contiennent des espaces. Je pense que c'est possible, car la commande : "RENAME fichier1.jpg "ca marche.jpg" fonctionne, l'espace est bien géré, mais par contre, la même commande exécutée par le programme C ne fonctionne pas, il considère la suite de la commande après l'espace comme un troisième paramètre.

Qui peux m'aider ??

Merci beaucoup par avance

David

Meilleures réponses pour « Renommer un fichier sous DOS » dans :
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF) VoirConversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce cette...
Renommer plusieurs fichiers en batch VoirLe fait de renommer un grand nombre de fichiers peut très vite devenir fastidieux. Heureusement, il existe des outils permettant d'automatiser cette tâche dans un grand nombre de cas : Fonctionnalités natives Utilisation d'un programme...
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
Le système de fichiers VoirQu'est-ce qu'un système de fichiers Les disques durs, aussi petits soient-ils, contiennent des millions de bits, il faut donc organiser les données afin de pouvoir localiser les informations, c'est le but du système de fichiers. Un disque dur est,...

1

pri, le 17 fév 2003 à 12:28:40

J'ai le meme pb que toi concernant les espaces lorsque je veux renommer un fichier. Si tu trouve une solution, repond moi!

Répondre à pri

2

marvinrouge, le 17 fév 2003 à 12:58:04
  • +1

Essayes de remplacer les " du nom par des \"

exemple:
system("RENAME fichier1.jpg "ca marche.jpg" ");

devient:
system("RENAME fichier1.jpg \"ca marche.jpg\" ");

Répondre à marvinrouge

3

jisisv, le 17 fév 2003 à 15:34:50

Salutatous,
Pourquoi faire du C pour utiliser system ?
Il doit exister une fonction rename dans Win$ non?
Consultez la merveilleuse information des API win$...
Recherchez sur Google , mais de grâce, n'utilisez system
qu'en dernier recourt i.e API non disponible,
programme propriétaire incontournable.... et alors ily a popen
(je ne sais pas si cela existe sous Win$)
Sous UNIX
man 2 rename
(abrégé)
RENAME(2) Linux Programmer's Manual RENAME(2)

NAME
rename - change the name or location of a file

SYNOPSIS
#include <stdio.h>

int rename(const char *oldpath, const char *newpath);

DESCRIPTION
rename renames a file, moving it between directories if required.

Any other hard links to the file (as created using link(2)) are unaffected.

If newpath already exists it will be atomically replaced (subject to a few conditions - see ERRORS below), so that there is no point at which another process attempting to access newpath will find it missing.

If newpath exists but the operation fails for some reason rename guarantees to leave an instance of newpath in place.

However, when overwriting there will probably be a window in which both oldpath and newpath refer to the file being renamed.

If oldpath refers to a symbolic link the link is renamed; if newpath refers to a symbolic link the link will be overwritten.

Voir sur le net
http://mkssoftware.com/docs/man3/rename.3.asp

Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.

Répondre à jisisv

4

lvince81, le 20 sep 2007 à 22:14:26

Bonjour moi j'ai le probleme sans passer par du c.
je voudrais renome un fichier contenant des espaces en un autre nom avec ou sans espace comme les films par exemple.
est ce que quelqu'un pourrait m'aider s'il vous plait?

merci d'avance

Répondre à lvince81

5

lvince81, le 20 sep 2007 à 22:23:09

C'est bon j'ai trouver la reponse a ma question j'ai rajouter des " " entre le groupe de mot.
par exemple

rename c:\asterix et obelix.avi asterix et obelix 2.avi
cela ne fonctionne pas il faut rajoute des " " entre le tout comma ça

rename "c:\asterix et obelix.avi" "asterix et obelix 2.avi"

desoler de vous avoir deranger pour rien.
merci quand meme.

lvince81

Répondre à lvince81

6

 arth, le 20 sep 2007 à 23:34:53

J'ai quand même une question. A quoi cela te sert-il de faire rename "c:\asterix et obelix.avi" "asterix et obelix 2.avi" ? Le loup, solitaire et mystérieux.

Répondre à arth