MATLAB Answers

Download files from an URL

60 views (last 30 days)
Dear all,
I wrote an function, which should download folder given in 'founded_medicine_folder.xls' as an url (see attachment). Unfortunately, I get an error, where it says:
'Error using fopen
First input must be a file name or a file identifier.
Error in download_edf>downloadFolderContentToCellArray
(line 31)
fileID = fopen(fileName, 'w');
Error in download_edf (line 2)
downloadFolderContentToCellArray(folderCellArrayData)'
1)What should I change that it considers the URL as an filename?
2) Can you observe if it would work?
folderCellArrayData = readcell('founded_medicine_folder.xls')
downloadFolderContentToCellArray(folderCellArrayData)
function downloadFolderContentToCellArray(folderCellArrayData)
import matlab.net.http.*
%add password, didn't want it to stay in code
creds = Credentials('Username', '', 'Password', '');
options = HTTPOptions('Credentials', creds, 'ConnectTimeout', 60);
len = length(folderCellArrayData);
%TODO make it first line or someting and not a sudden magic number
%currently first line descriptions of content
%following two empty lines
for x = 1:len
%filetype = folderCellArrayData{x,3};
url = folderCellArrayData{x,1};
%if ~(strcmp(filetype, 'folder'))
resp = RequestMessage().send(url , options);
%find file name
i = strsplit(url, '/');
y = length(i);
fileName = i(y);
%save file in temp folder
fileID = fopen(fileName, 'w');
fprintf(fileID, '%s', resp.Body.Data);
fclose(fileID);
%end
end
end

Accepted Answer

Sai Veeramachaneni
Sai Veeramachaneni on 2 Mar 2021
Hi,
i = strsplit(url, '/');
y = length(i);
fileName = i(y);
It seems that above lines of code makes the fileName variable to be of type cell array.
quick resolution would be to change type of fileName variable.
fileName = i{y}
Hope it helps.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!