利用MATLAB的Timer实现网络图片定时下载的一个个例:
在MATLAB当前目录下新建一个.m脚本,本例里起名为wvgifdownload.m:
%图片存储目录设定: folderpath=['d:\temp\']; if length(dir([folderpath,'*.gif']))==0 %判断目录是否已有GIF文件 urlwrite('https://www.goes.noaa.gov/dimg/jma/fd/wvblue/10.gif',[folderpath,'1.gif'],'timeout',15); %空目录则将下载的图片命名为1.gif else %文件夹已有GIF文件 localinfo=imfinfo([folderpath,num2str(length(dir([folderpath,'*.gif']))),'.gif']); %获取目录里最新GIF的文件信息 webinfo=imfinfo('https://www.goes.noaa.gov/dimg/jma/fd/wvblue/10.gif');%获取目标网络图片的文件信息 if localinfo.FileSize~=webinfo.FileSize %比较两者文件大小,若不一样,则表示网络图片已更新,可以下载 urlwrite('https://www.goes.noaa.gov/dimg/jma/fd/wvblue/10.gif',['f:\CloudGIF\wv\',num2str(length(dir([folderpath,'*.gif']))+1),'.gif'],'timeout',15); end end
设定Timer对象,这里起名为down:
down = timer ... ( 'Name' , 'my_timer' ... , 'TimerFcn' , @(varargin)evalin('base','wvgifdownload') ... , 'BusyMode' , 'drop' ... , 'ExecutionMode' , 'fixedRate' ... , 'Period' , 1800 ... , 'StartDelay' , 0 ... );
注意TimerFcn这里是调用当前目录脚本的写法,如果是函数则按函数调用去写。本例Period这里设定的是半小时执行一次,即每半小时检查网络图片是否更新,如有更新即可下载。
执行Timer:
start(down)