[Matlab]Copie plusieurs fichiers
Résolu/Fermé
Newenda
Messages postés
75
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
26 avril 2021
-
24 mars 2009 à 14:12
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 25 mars 2009 à 15:41
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 25 mars 2009 à 15:41
A voir également:
- [Matlab]Copie plusieurs fichiers
- Copie cachée - Guide
- Renommer plusieurs fichiers - Guide
- Copie écran samsung - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Super copie - Télécharger - Gestion de fichiers
9 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 mars 2009 à 14:17
24 mars 2009 à 14:17
copyfile('fichier_source',['chemin_du_fichier/' 'fichier_source']);
il suffot de faire une concaténation de chaine.
il suffot de faire une concaténation de chaine.
Newenda
Messages postés
75
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
26 avril 2021
24
24 mars 2009 à 15:48
24 mars 2009 à 15:48
Ok merci, mais je me heurte en faite un peu toujours au même problème : la syntaxe pour lire/appeler/écrire plusieurs fichiers.
En gros mon programme ouvre fichier par fichier.. comment nommer et donc copier les "fichier_source" ? et encore plus GRAVE comment faire des différentes directory...
J'explique le fond de mon problème pour mieux comprendre :
J'ai pleins de fichiers qui sont dans plein de dossier suivant cette arborescence :
ans/mois/jour/heure/AnsMoisJour_heureSecondeDiziemeCentième.txt
(note : AnsMoisJour_heureSecondeDiziemeCentième.txt = nom des fichiers)
(exemple : le fichier 091204_22158598.txt se trouve dans C:\2009\12\04\22 avec pleins d'autres fichiers du 4 décembre 2009 à 22h)
Et j'aimerais copier les bons fichiers (ceux qui respectent une certaine condition) dans une nouvelle arborescence de la même forme ! Pour à la fin avoir une nouvelle copie de tous les dossiers mais avec uniquement les bons fichiers.
Merci
PS : si je demande de l'aide, si je ne le fais pas à la main un par un... c'est parce que là je dois trouver la MEILLEURE solution (ie la plus rapide) car j'ai plus de 2 000 000 de fichiers à traiter...
En gros mon programme ouvre fichier par fichier.. comment nommer et donc copier les "fichier_source" ? et encore plus GRAVE comment faire des différentes directory...
J'explique le fond de mon problème pour mieux comprendre :
J'ai pleins de fichiers qui sont dans plein de dossier suivant cette arborescence :
ans/mois/jour/heure/AnsMoisJour_heureSecondeDiziemeCentième.txt
(note : AnsMoisJour_heureSecondeDiziemeCentième.txt = nom des fichiers)
(exemple : le fichier 091204_22158598.txt se trouve dans C:\2009\12\04\22 avec pleins d'autres fichiers du 4 décembre 2009 à 22h)
Et j'aimerais copier les bons fichiers (ceux qui respectent une certaine condition) dans une nouvelle arborescence de la même forme ! Pour à la fin avoir une nouvelle copie de tous les dossiers mais avec uniquement les bons fichiers.
Merci
PS : si je demande de l'aide, si je ne le fais pas à la main un par un... c'est parce que là je dois trouver la MEILLEURE solution (ie la plus rapide) car j'ai plus de 2 000 000 de fichiers à traiter...
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 mars 2009 à 16:30
24 mars 2009 à 16:30
Tu n'arrive toujours pas à utiliser rdir ???
J'ai du mal à comprendre ton problème, où est la difficulté ?
Mais si tu as le nom du fichier source, il est simple d'avoir le nom du fichier destination de copie.
J'ai du mal à comprendre ton problème, où est la difficulté ?
Mais si tu as le nom du fichier source, il est simple d'avoir le nom du fichier destination de copie.
Newenda
Messages postés
75
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
26 avril 2021
24
25 mars 2009 à 09:32
25 mars 2009 à 09:32
Bah ouais chaud
Voilà ce qu'il faudrait faire :
si le fichier commence par 09 alors il va déjà dans le dossier C:\2009, si il continu en 04 > il va dans le dossier C:\2009\04, si il continu en 01 > il va dans le dossier C:\2009\04\01 et enfin si il continu en 22 il va dans C:\2009\04\01\22
Exemple: Syntaxe du fichiers : 090401_22154589.txt
Bien sur il ne s'agit pas de copier 4 fois le dossier mais bien, une seule fois, à la dernière directory : C:\2009\04\01\22
Et tout ça, en créant bien sur une routine automatique: en interpetant par exemple la directory du fichier source pour créer une nouvelle directory équivalente mais dans un tout autre dossier :
ex : que le bon fichier 090401_22154589.txt qui se trouve dans C:\2009\04\01\22 se retrouve dans C:\fichierOK\2009\04\01\22
J'avoue avoir un peu de mal, effectivement.
Voilà ce qu'il faudrait faire :
si le fichier commence par 09 alors il va déjà dans le dossier C:\2009, si il continu en 04 > il va dans le dossier C:\2009\04, si il continu en 01 > il va dans le dossier C:\2009\04\01 et enfin si il continu en 22 il va dans C:\2009\04\01\22
Exemple: Syntaxe du fichiers : 090401_22154589.txt
Bien sur il ne s'agit pas de copier 4 fois le dossier mais bien, une seule fois, à la dernière directory : C:\2009\04\01\22
Et tout ça, en créant bien sur une routine automatique: en interpetant par exemple la directory du fichier source pour créer une nouvelle directory équivalente mais dans un tout autre dossier :
ex : que le bon fichier 090401_22154589.txt qui se trouve dans C:\2009\04\01\22 se retrouve dans C:\fichierOK\2009\04\01\22
J'avoue avoir un peu de mal, effectivement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Newenda
Messages postés
75
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
26 avril 2021
24
25 mars 2009 à 13:53
25 mars 2009 à 13:53
Bon j'ai réussi à creer des dossiers suivant le nom des fichiers :
-------------------------------------------------------------------------------------------
%Donne nom du fichier (filename) et récupère : année, mois, jour, heure
[dir, filename] = fileparts(A(p).name)
annee = filename(1:2);
mois = filename(3:4);
jour = filename (5:6);
heure = filename(8:9);
%création de l'arborescences des répertoires utiles
mkdir(annee);
mkdir(annee,mois);
mkdir(fullfile(annee,mois),jour);
mkdir(fullfile(annee,mois,jour),heure);
-------------------------------------------------------------------------------------------
Exemple: soit le fichier: 090805_22545898.txt
donc
filename = 090805_22545898
annee = 09
mois = 08
jour = 05
heure = 22
Le programme me créer aussi une arborescence C:\09\08\05\22
Mais voilà, maintenant je cherche à copier ce fichier dans la directory : C:\09\08\05\22 fraichement créée.
Enfin je cherche une routine pour copier tous les fichiers qui passent dans mon programme dans leurs dossiers d'heure respectifs.
Merci
-------------------------------------------------------------------------------------------
%Donne nom du fichier (filename) et récupère : année, mois, jour, heure
[dir, filename] = fileparts(A(p).name)
annee = filename(1:2);
mois = filename(3:4);
jour = filename (5:6);
heure = filename(8:9);
%création de l'arborescences des répertoires utiles
mkdir(annee);
mkdir(annee,mois);
mkdir(fullfile(annee,mois),jour);
mkdir(fullfile(annee,mois,jour),heure);
-------------------------------------------------------------------------------------------
Exemple: soit le fichier: 090805_22545898.txt
donc
filename = 090805_22545898
annee = 09
mois = 08
jour = 05
heure = 22
Le programme me créer aussi une arborescence C:\09\08\05\22
Mais voilà, maintenant je cherche à copier ce fichier dans la directory : C:\09\08\05\22 fraichement créée.
Enfin je cherche une routine pour copier tous les fichiers qui passent dans mon programme dans leurs dossiers d'heure respectifs.
Merci
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
25 mars 2009 à 14:06
25 mars 2009 à 14:06
Ba ! Il suffit de concaténé les strings !
copyfile(filename,['c:\\',annee,'\\',mois,'\\',jour,'\\',filename]);
je met '\\' à la place de '\' car j'utilise la notation C qui est peut être respecté en MATLAB.
copyfile(filename,['c:\\',annee,'\\',mois,'\\',jour,'\\',filename]);
je met '\\' à la place de '\' car j'utilise la notation C qui est peut être respecté en MATLAB.
Newenda
Messages postés
75
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
26 avril 2021
24
25 mars 2009 à 14:19
25 mars 2009 à 14:19
Oui c'est ce que tu m'avais expliquer plus en haut. Cependant il reconnait pas le filename comme le fichier existant mais juste comme une chaine de caractère... Je dois (je pense) vraiment définir "source" comme mon point .txt mais je vois pas comment implémenter cette définition dans copy.
Merci !
Merci !
Newenda
Messages postés
75
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
26 avril 2021
24
25 mars 2009 à 15:28
25 mars 2009 à 15:28
ok trouvé !
Il faut juste recomposer le nom du fichier :
full_filename = fullfile(dir, [filename, ext]);
merci encore à vous.
Il faut juste recomposer le nom du fichier :
full_filename = fullfile(dir, [filename, ext]);
merci encore à vous.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
25 mars 2009 à 15:41
25 mars 2009 à 15:41
C'est exactement pareil !
https://www.mathworks.com/help/matlab/index.html;jsessionid=ab5c2eb54d440ac863c5c4dd67f2?/access/helpdesk/help/techdoc/ref/fullfile.html=&http://www.google.com/search%3fq=fullfile+matlab%2524&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a
j'ai juste oublié l'extension dans mon exemple, tu aurais pu corrigé de toi même.
https://www.mathworks.com/help/matlab/index.html;jsessionid=ab5c2eb54d440ac863c5c4dd67f2?/access/helpdesk/help/techdoc/ref/fullfile.html=&http://www.google.com/search%3fq=fullfile+matlab%2524&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a
j'ai juste oublié l'extension dans mon exemple, tu aurais pu corrigé de toi même.