IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Problème avec copyfile


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Physicien médical
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Physicien médical
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 35
    Points
    35
    Par défaut Problème avec copyfile
    Salut, j'ai le même genre de problème que sebastien06 dans cette discussion (l'erreur: no match found dans copyfile)

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    function renommer (dossier)
     
    ext = ('*.yml');
    chemin = fullfile(dossier,ext);
    list = dir(chemin);
     
    for n=1:numel(list)
     
       nouveauNom = sprintf('IG_PVSIGR_Prostate%d.yaml',n);
       ancienNom = list(n).name;
     
       copyfile(ancienNom,nouveauNom); 
     
    end 
     
    end
    est-ce que c'est du au fait que l'extension n'est pas la meme ? (yaml au lieu de yml)

    Merci beaucoup d'avance!

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Regarde ce que contient list(n).name.
    Tu verras qu'il manque le chemin.

    Pour ce genre de manipulation il vaut toujours mieux utiliser le nom complet des fichiers, c'est moins risqué, au moins on est sûr de ce qu'on manipule (et cela vaut pour les 2 arguments de COPYFILE).

  3. #3
    Nouveau membre du Club
    Profil pro
    Physicien médical
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Physicien médical
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Bonsoir Caro-line, merci pour ta réponse

    Je ne suis pas sur d'avoir bien compris ce que tu me conseilles, dans le sens où malheureusement les fichiers à renommer ne possedent a priori pas de lien entre eux au niveau du nom, je ne peux pas utiliser de %d etc...et normalement le chemin est compris dans l'argument 'dossier' non?

    Du coup je ne vois pas trop comment faire pour éviter la solution du dir pour pouvoir faire une boucle et tous les renommer....

    merci de m'éclairer, je suppose que c'est pas grand-chose mais je suis un peu dans la puree la...

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Un nouvel indice alors, regarde bien l'exemple donné dans la FAQ et comment le nom du fichier complet est reconstruit dans la boucle :
    http://matlab.developpez.com/faq/?pa..._list_fichiers

  5. #5
    Nouveau membre du Club
    Profil pro
    Physicien médical
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Physicien médical
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Ok,merci beaucouuup ca fonctionne nickel!

    voici le code, pour le geste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function  renommer( dossier )
     
    ext = ('*.yml');
    chemin = fullfile(dossier,ext);
    list = dir(chemin);
     
    for n=1:numel(list) 
     
       copyfile(fullfile(dossier,list(n).name),fullfile(sprintf('IG_PVSIGR_Prostate%d.yaml',n))); 
     
    end 
     
    end
    Excellente soirée à toi Caro-Line!

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut


    Ceci dit ton 2ème FULLFILE ne sert à rien.
    D'ailleurs il te fait la copie où ?

    Il aurait fallu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fullfile(repertoire,sprintf('IG_PVSIGR_Prostate%d.yaml',n))
    Avec repertoire le chemin du répertoire de destination souhaité.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec Copyfile
    Par Yun-Harla dans le forum MATLAB
    Réponses: 8
    Dernier message: 18/05/2009, 15h25
  2. Problème d'écrasement impossible avec CopyFile
    Par alainpeniche dans le forum Visual C++
    Réponses: 3
    Dernier message: 04/10/2007, 11h14
  3. Problème avec CopyFile
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 22/02/2007, 11h59
  4. Problème avec CreateDirectory et CopyFile
    Par Sunchaser dans le forum C++Builder
    Réponses: 8
    Dernier message: 16/09/2006, 22h49
  5. Réponses: 6
    Dernier message: 06/12/2005, 19h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo