How to display an error if a file doesn't exist
Show older comments
I am working on a function that uses ftp to pull files from nasa's website. I want to make it so that if the file doesn't exist then display an error message. The following is the code of what is retrieved.
ftpobj = ftp('cddis.nasa.gov');
for i=1:days2get
dirStr = sprintf('/gnss/data/daily/2020/brdc/', doy(i));
fileStr = sprintf('BRDC00IGS_R_2020%03d0000_01D_MN.rnx.gz', doy(i));
cd(ftpobj, dirStr);
mget(ftpobj, fileStr, '.');
end
gunzip('*.gz');
Right now if the file doesn't exist I get an error saying that the file is not found on the server.
Accepted Answer
More Answers (2)
Image Analyst
on 1 Jul 2020
Try this:
doy = [30, 200];
days2get = length(doy);
ftpObject = ftp('cddis.nasa.gov');
for k = 1 : days2get
folder = sprintf('/gnss/data/daily/2020/brdc/', doy(k));
baseFileName = sprintf('BRDC00IGS_R_2020%03d0000_01D_MN.rnx.gz', doy(k));
cd(ftpObject, folder);
try
mget(ftpObject, baseFileName, '.');
fprintf('\nSUCCESS! FTP Successfully retrieved filename #%d of %d:\n %s\nfrom folder:\n %s\n', ...
k, days2get, baseFileName, folder);
catch
errorMessage = sprintf('ERROR! FTP Error retrieving filename #%d of %d:\n %s\nfrom folder:\n %s', ...
k, days2get, baseFileName, folder);
fprintf('\n%s\n', errorMessage);
uiwait(errordlg(errorMessage));
end
end
gunzip('*.gz');
You'll see:
SUCCESS! FTP Successfully retrieved filename #1 of 2:
BRDC00IGS_R_20200300000_01D_MN.rnx.gz
from folder:
/gnss/data/daily/2020/brdc/
ERROR! FTP Error retrieving filename #2 of 2:
BRDC00IGS_R_20202000000_01D_MN.rnx.gz
from folder:
/gnss/data/daily/2020/brdc/
and the user will get an error popup dialog box whenever there is an error retrieving a file.
Hussein Ammar
on 1 Jul 2020
if ~exist('myFileName.EXTENSION','file')
disp('Requested file was not found.')
end
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!