Converting cell components into strings for moving files

4 次查看(过去 30 天)
I am working on a code that helps me move files that i choose from one directory to another . The code that i have is as follows.
[filename, pathname,filterindex] = uigetfile('*.m', 'Select the Matlab files to move', 'MultiSelect', 'on')
source = strcat(pathname, filename)
destination = uigetdir
opt_choose = inputdlg('What do you want to do:/n 1. Move all files or 2. Move one file',...
'Specify your interest in the function', [1,30])
option = str2num(opt_choose{:});
if option < 1||option >2
%This is to make sure that the input is only 1 or 2.
errordlg('This is not an option. You have only 2 more attempts')
end
if option ==1
movefile(source,destination)
end
The error that i get is as follows :
Error using movefile Argument must contain a string.
Error in move_it (line 13) movefile(source,destination)
I believe it is because the files that i am selecting, which are multiple files, are being stored as cell components. When i check for the value of source in the workspace, it is as follows,
source = 'abcd. m' 'xyzd.m'
How could i change this to a string so that i could pass it into the if function as a source so that it wont give me an error.
Any help would be appreciated.

采纳的回答

Nobel Mondal
Nobel Mondal 2015-10-9
编辑:Nobel Mondal 2015-10-9
Replace the line calling 'movefile' by a cell-function. Like this -
cellfun(@(C) movefile(C, destination), source)
  2 个评论
Sanwal Yousaf
Sanwal Yousaf 2015-10-11
just to clarify. What is C representing in this function? is that the source or something else?

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2015-10-9
movefile() accepts only the name of one file (or directory) at a time. If you have multiple files then you will need to movefile() them one by one.
Note: you should use fullfile() instead of strcat() to construct the path.
  3 个评论
Walter Roberson
Walter Roberson 2015-10-11
Use sprintf() to construct a string that is an operating system command and system() the command.
Sanwal Yousaf
Sanwal Yousaf 2015-10-11
I got it. i was making a syntax error in my script as well. However, fullfile worked like a charm. Thanks a lot!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Simulink Environment Customization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by