function [filenames,filedatis]=tree_dir(root,search_spec,depth)
% [filenames,filedatis]=tree_dir(root,search_spec,depth)
%
% GS 2000-09-04
%
% Routine sucht alle Dateien bis depth Ebenen unterhalb des Verzeichnispfades root, die der search_spec entsprechen
% und gibt die Namen und Dateums in filenames und filedatis zurück

filenames=[];
filedatis=[];

if nargin < 3
   depth=1000; % sollte allemal reichen
end

% 1. Files im aktuellen Verzeichnis
files=dir(fullfile(root,search_spec));
for i=1:length(files)
   file_h=files(i).name;
%    datinum_h=datenum(files(i).date);
   if findstr(file_h,root) % Pfad ist offenbar integriert
      filenames=str2mat(filenames,file_h);
   else
      filenames=str2mat(filenames,fullfile(root,file_h));
   end
%    filedatis=[filedatis;datinum_h];
   filedatis=[filedatis;files(i).datenum];
end
% 2. Unterverzeichnisse
allfiles=dir(root);
for i=1:length(allfiles)
   if depth>1 && allfiles(i).isdir && ~strcmp(allfiles(i).name,'.') && ~strcmp(allfiles(i).name,'..') % Verzeichnis
      [filenames_h,filedatis_h]=tree_dir(fullfile(root,allfiles(i).name),search_spec,depth-1);
      if ~isempty(filenames_h)
         filenames=str2mat(filenames,filenames_h);
         filedatis=[filedatis;filedatis_h];
      end
   end
end
if ~isempty(filenames)
   I=find(filenames(:,1)==' '); % Leerzeilen
   filenames(I,:)=[]; % Löschen
end