我需要从Ftp服务器下载大量数据。现在我想使用matlab来完成这项任务。
我的ftp地址是http://e4ftl01.cr.usgs.gov/MOLT/MOD09GA.005/2008.03.17/
文件名包括:
"MOD09GA.A2008077.h23v05.005.2008080122921.hdf“"MOD09GA.A2008077.h22v05.005.2008080122814.hdf”
数据将保存在驱动器E中的文件夹中。
我想用Matlab下载这个文件。这样我就可以从ftp服务器下载数据了。
等待您的帮助。提前感谢
谢谢你的数据有个问题。我只需要2个下面的数据:"MOD09GA.A2008077.h23v05.005.2008080122921.hdf“"MOD09GA.A2008077.h22v05.005.2008080122814.hdf。”
但我只需要该数据的ID,以消除多余的字母:"MOD09GA.A2008077.h23v05.hdf“"MOD09GA.A2008077.h22v05.hdf”
我想有2到313个数据。如何做到这一点?请帮帮忙。
发布于 2014-07-25 05:25:33
从技术上讲,您使用的是HTTP下载,而不是FTP。
您可以让Matlab将URL的内容复制到本地文件中:
url = 'http://e4ftl01.cr.usgs.gov/MOLT/MOD09GA.005/2008.03.17/MOD09GA.A2008077.h23v05.005.2008080122921.hdf'
urlwrite(url, 'tmp.hdf');然后查看文件中的内容:
hdfinfo('tmp.hdf')发布于 2014-07-25 05:31:33
正如dpwe已经说过的,从技术上讲,您并不是通过FTP下载。然而,这里有一个针对您的情况量身定做的解决方案,它首先获得您想要的所有文件名,即".*hdf“文件。然后循环遍历所有找到的*.hdf文件,并将它们下载到“localPath”。
这绝对不是最简单或最干净的方式,但它的工作,它应该满足您的需求,我希望。
% URL you want to grab from - has to end with a /
URL = 'http://e4ftl01.cr.usgs.gov/MOLT/MOD09GA.005/2008.03.17/';
% Local path on your machine
localPath = 'E:/myfolder/';
% Read html contents and parse file names with ending *.hdf
urlContents = urlread(URL);
ret = regexp(urlContents, '"\S+.hdf"', 'match');
% Loop over all files and download them
for k=1:length(ret)
filename = ret{k}(2:end-1);
filepathOnline = strcat(URL, filename);
filepathLocal = fullfile(localPath, filename);
urlwrite(filepathOnline, filepathLocal);
endhttps://stackoverflow.com/questions/24942440
复制相似问题