Copyfile/ movefile when filenames are not directly available

1 view (last 30 days)
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!

Accepted Answer

Peng Li
Peng Li on 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 Comments
Peng Li
Peng Li on 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.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 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 Comments
Afzal Mohammed
Afzal Mohammed on 29 Mar 2020
Edited: Afzal Mohammed on 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 on 29 Mar 2020
Peng Li,
Correct! that is what I was trying to. Your code workd :) Yeyyy!! Much appreciated, thanks!

Sign in to comment.

Tags

Products

Community Treasure Hunt

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

Start Hunting!