Copyfile/ movefile when filenames are not directly available

1 vue (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.

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by