FUNCTION datadir_list::init, path
files=['Earth/', 'Ico_m14/', 'Turn_on/', 'Venus1/', 'Venus2/','????_???_???']
ndirnames = 7
dirnames=make_array(ndirnames, /ptr)
found = intarr(ndirnames)
path1=path
cd, path1, current=olddir
for i=0, 4 do begin
dirnames[i]=ptr_new(file_search( files[i], count=found1, fully_qualify_path=0))
found[i]=found1
endfor
cd, path1, current=olddir
dirnames[6]=ptr_new(file_search( files[5], count=found1, fully_qualify_path=0))
found[6]=found1
cd, getenv('ROOT_RPWS')+'/pro'
nfiles=total(found)
dirlist=make_array(nfiles, /ptr)
k=0
for i=0, ndirnames-1 do begin
for j=0, found[i]-1 do begin
dirlist[k]=ptr_new(obj_new('directory', (*(dirnames[i]))[j], path))
k=k+1
endfor
ptr_free, dirnames[i]
endfor
if k gt 0 then begin
self.dirs=ptr_new(dirlist[0:k-1])
endif else self.dirs=ptr_new()
return, 1
end
PRO datadir_list::cleanup
for i=0, n_elements(*self.dirs) do begin
ptr_free, (*self.dirs)[i]
endfor
ptr_free, self.dirs
end
FUNCTION datadir_list::getdirnames
if (ptr_valid(self.dirs)) then begin
length=(size(*self.dirs))[1]
dirnames=strarr(length)
for i=0, length-1 do begin
dirnames[i]=(*(*self.dirs)[i])->getname()
endfor
p_dirnames=ptr_new(dirnames)
endif else begin
p_dirnames=ptr_new()
endelse
return, p_dirnames
end
FUNCTION datadir_list::getdirs
return, self.dirs
end
PRO datadir_list__define
define={DATADIR_LIST, $
dirs:ptr_new()}
end