pyt
2010-05-13, 17:27
作为测试,我想输出所有文件夹内的文件名但是出现错误,读取文件时发生错误,说文件不存在。但是当不需要读文件,只是计算所有文件夹里的文件数量时,程序是正确的,是不是 fid = fopen([r,filename(j).name],'r') 写的不对?
我的文件夹都是以日期命名的。
fileall=[]
a1 = datenum('2007-07-01'); %2007/07/01
a2 = datenum('2007-12-31'); %2008/12/31
for i = a1:1:a2
k = datestr(i,'yyyymmdd');
r = sprintf('E:\\Nimrod\\%s\\%s\\%s',k(1:4),k(5:6),k(7:8));
filename=dir([r '\*.dat'])
flength=length(filename)
for j=1:flength
fid = fopen([r,filename(j).name],'r');
if fid == -1
error('File does not exists');
end
DateMy_Year=filename(j).name(16:19);
DateMy_Month=filename(j).name(20:21);
DateMy_Day=filename(j).name(22:23);
DateMy_Hour=filename(j).name(25:26);
DateMy_Minute=filename(j).name(27:28);
DateNow=[DateMy_Year ' ' DateMy_Month ' ' DateMy_Day ' ' DateMy_Hour ' ' DateMy_Minute];
DateAdd=str2num(DateNow);
fileall=[fileall;DateAdd]
end
end
save fileall.txt fileall -ascii
我的文件夹都是以日期命名的。
fileall=[]
a1 = datenum('2007-07-01'); %2007/07/01
a2 = datenum('2007-12-31'); %2008/12/31
for i = a1:1:a2
k = datestr(i,'yyyymmdd');
r = sprintf('E:\\Nimrod\\%s\\%s\\%s',k(1:4),k(5:6),k(7:8));
filename=dir([r '\*.dat'])
flength=length(filename)
for j=1:flength
fid = fopen([r,filename(j).name],'r');
if fid == -1
error('File does not exists');
end
DateMy_Year=filename(j).name(16:19);
DateMy_Month=filename(j).name(20:21);
DateMy_Day=filename(j).name(22:23);
DateMy_Hour=filename(j).name(25:26);
DateMy_Minute=filename(j).name(27:28);
DateNow=[DateMy_Year ' ' DateMy_Month ' ' DateMy_Day ' ' DateMy_Hour ' ' DateMy_Minute];
DateAdd=str2num(DateNow);
fileall=[fileall;DateAdd]
end
end
save fileall.txt fileall -ascii