Error using copyfile from a changing directory

2 次查看(过去 30 天)
I am pulling a file to read in from an always changing directory. I would like to copy this file into a directory I have it for storage and further data analysis.
this_folder = pwd
[data, path] = uigetfile('*csv')
data2 = fullfile(path, data)
do some processing then when I am finished
f_all = fullfile(this_folder, 'data_plots\All_data_plots')
copyfile(data,f_all)
I get the error:
Error using copyfile
Argument must contain a string
The problem is data, data2, f_all, path, and this_folder are all characters so I am not sure what it means by must contain a string.
  5 个评论
per isakson
per isakson 2015-9-1
"class char for all" &nbsp Are you sure?
>> copyfile( 'abc', 'def' )
Error using copyfile
No matching files were found.
>> copyfile( 1, 'def' )
Error using copyfile
Argument must contain a string.
and clicking the Cancel-button
>> [ file, folder ] = uigetfile('*.csv')
file =
0
folder =
0
Calabrese
Calabrese 2015-9-2
编辑:Calabrese 2015-9-2
Using a different variable besides path gets rid of the error I was getting. I am not sure why if in the beginning I reassign the reserved variable but I won't complain.
However I when I tried copying the file using the path in the file name it still gives me an error.
copyfile(data2,f_all)
I decided to just change my directory temporarily to perform the function
cd(folder)
f_all = fullfile(this_folder, 'data_plots\All_data_plots')
copyfile(data,f_all)
cd(this_folder)
and that works

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2015-9-1
If the user cancels uigetfile() then the file output (which you call "data") will return a numeric value rather than a character.
If you use uigetfile() with Multiselect turned on, then the file output will return as a cell array of strings, even if only one value is chosen by the user.
  3 个评论
Walter Roberson
Walter Roberson 2015-9-1
uigetfile() uses the native file choice interfaces so it looks different for each operating system. For OS-X, in the bottom right corner there will be the normal "Open" button to select the file, but just to the left of that there will be a "Cancel" button. If the user chooses to Cancel then the output is not a character string.
Calabrese
Calabrese 2015-9-2
I am not canceling anything though, I am simply saving the path of I folder I get to a variable so I could use it again later to copy the file. The solution to the error I was getting to use a different variable instead of path.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by