0001
0002
0003 function [ListDevices,ListRecords,ListXml,List]=ListDir(CurrentPath,ListExperiments,ListDevices_in,ListRecords_in)
0004
0005 ListRecords={};
0006 ListDevices={};
0007 ListXml={};
0008 irecord_tot=0;
0009 idevice_tot=0;
0010 ixml_tot=0;
0011 for iexp=1:length(ListExperiments)
0012 List.Experiment{iexp}.name=ListExperiments{iexp};
0013 hdir=dir(fullfile(CurrentPath,ListExperiments{iexp}));
0014 idevice=0;
0015 for isub=1:length(hdir)
0016 if hdir(isub).isdir
0017 name=hdir(isub).name;
0018 if ~isequal(name(1),'.')
0019 [testnew,testselect]=test_select(name,ListDevices,ListDevices_in);
0020 if testselect
0021 idevice=idevice+1;
0022 List.Experiment{iexp}.Device{idevice}.name=name;
0023 if testnew
0024 idevice_tot=idevice_tot+1;
0025 ListDevices{idevice_tot}=name;
0026 end
0027 CurrentDevice=fullfile(CurrentPath,ListExperiments{iexp},name);
0028 hsubxml=dir(fullfile(CurrentDevice,'*.xml'));
0029 if isempty(hsubxml)
0030 hsubdir=dir(fullfile(CurrentPath,ListExperiments{iexp},name));
0031 irecord=0;
0032 for isubsub=1:length(hsubdir)
0033 if hsubdir(isubsub).isdir
0034 RecordName=hsubdir(isubsub).name;
0035 if ~isequal(RecordName(1),'.')
0036 [testnew,testselect]=test_select(RecordName,ListRecords,ListRecords_in);
0037 if testselect
0038 if testnew
0039 irecord_tot=irecord_tot+1;
0040 ListRecords{irecord_tot}=RecordName;
0041 end
0042 irecord=irecord+1;
0043 List.Experiment{iexp}.Device{idevice}.Record{irecord}.name=RecordName;
0044 hsubsubxml=dir(fullfile(CurrentDevice,RecordName,'*.xml'));
0045 for ixml=1:length(hsubsubxml)
0046 XmlName=hsubsubxml(ixml).name;
0047 List.Experiment{iexp}.Device{idevice}.Record{irecord}.xmlfile{ixml}=XmlName;
0048 testnew=test_select(XmlName,ListXml,{});
0049 if testnew
0050 ixml_tot=ixml_tot+1;
0051 ListXml{ixml_tot}=XmlName;
0052 end
0053 end
0054 end
0055 end
0056 end
0057 end
0058 else
0059 for ixml=1:length(hsubxml)
0060 XmlName=hsubxml(ixml).name;
0061 List.Experiment{iexp}.Device{idevice}.xmlfile{ixml}=XmlName;
0062 testnew=test_select(XmlName,ListXml,{});
0063 if testnew
0064 ixml_tot=ixml_tot+1;
0065 ListXml{ixml_tot}=XmlName;
0066 end
0067 end
0068 end
0069 end
0070 end
0071 end
0072 end
0073 end
0074
0075
0076 function [testnew,testselect]=test_select(name,ListDevices,ListDevices_in)
0077 if ~isempty(ListDevices_in)
0078 testnew=0;
0079 testselect=0;
0080 for ilist=1:length(ListDevices_in)
0081 if isequal(name,ListDevices_in{ilist})
0082 testnew=1;
0083 testselect=1;
0084 break
0085 end
0086 end
0087 else
0088 testnew=1;
0089 testselect=1;
0090 end
0091 if testnew
0092 for ilist=1:length(ListDevices)
0093 if isequal(name,ListDevices{ilist})
0094 testnew=0;
0095 break
0096 end
0097 end
0098 end