Effacer les filtres
Effacer les filtres

Copyfile/ movefile when filenames are not directly available

4 vues (au cours des 30 derniers jours)
Afzal Mohammed
Afzal Mohammed le 28 Mar 2020
Commenté : Afzal Mohammed le 29 Mar 2020
Hello Everyone,
I have two .xlsx files in a folder, I want to copy/ move those .xlsx files to a different folder but the user is not aware of file names which are stored in a workspace variable of the same Matlab program.
As shown below: 'flagged' is a workspace variable of my program which has file names. I want to copy/ move those specific files to a separate folder.
I tried following but it's not working
copyfile flagged(i).name newFolder
Please advise.
Thanks!
  1 commentaire
Afzal Mohammed
Afzal Mohammed le 29 Mar 2020
Following lines helped.
mkdir('newFolder');
copyfile(flagged{i}, './newFolder');

Connectez-vous pour commenter.

Réponse acceptée

Peng Li
Peng Li le 28 Mar 2020
flagged is a cell so you couldn’t access it using parentheses and dot motion.
flagged{i} is your ith element in flagged. For example flagged{1} will be myFile.xlsx. If you want to move it somewhere you may also need the full directory as well unless it’s in the current directory.
  3 commentaires
Afzal Mohammed
Afzal Mohammed le 29 Mar 2020
Peng Li, appreciate your tips, thanks.
Peng Li
Peng Li le 29 Mar 2020
If you need to create a folder called newFolder, use mkdir('newFolder'); first to create a folder named newFolder at the current directory.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 28 Mar 2020
Assuming that newFolder is the name of a variable that stores the destination folder name:
copyfile(flagged(i).name, newFolder)
However I would recommend that you should be using fullfile() and should be using exist() to test to be sure that the file exists before you attempt to copy it.
  5 commentaires
Afzal Mohammed
Afzal Mohammed le 29 Mar 2020
Modifié(e) : Afzal Mohammed le 29 Mar 2020
Walter,
ohh my bad, I apologize for creating the confusion, I was trying something and forgot to delete the last line. I know the last line from my code as shown below doesn't make any sense.
newFolder {i} = flagged{i}
Afzal Mohammed
Afzal Mohammed le 29 Mar 2020
Peng Li,
Correct! that is what I was trying to. Your code workd :) Yeyyy!! Much appreciated, thanks!

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by