procedure SearchFile(sRootDir: string);
var
Found: integer;
SearchRec: TSearchRec;
i,j:integer;
SiteFolders,DayFolders,HourFolders,AudioFolders: TStringList;
begin
SiteFolders:=TStringList.Create;
DayFolders:=TStringList.Create;
HourFolders:=TStringList.Create;
AudioFolders:=TStringList.Create;
DoneFileList.Clear;
AudioFileList.Clear;
DataFileList.Clear;
Found := FindFirst(sRootDir + '\*', faDirectory, SearchRec);
while Found = 0 do
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
SiteFolders.Add(sRootDir + '\'+SearchRec.Name);
end;
Found := FindNext(SearchRec);
end;
FindClose(SearchRec);
for i:=0 to SiteFolders.Count-1 do
begin
Found := FindFirst(SiteFolders[i]+'\*', faDirectory, SearchRec);
while Found = 0 do
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
DayFolders.Add(SiteFolders[i]+'\'+SearchRec.Name);
end;
Found := FindNext(SearchRec);
end;
end;
FindClose(SearchRec);
for i:=0 to DayFolders.Count-1 do
begin
Found := FindFirst(DayFolders[i]+'\*', faDirectory, SearchRec);
while Found = 0 do
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
HourFolders.Add(DayFolders[i]+'\'+SearchRec.Name);
end;
Found := FindNext(SearchRec);
end;
end;
FindClose(SearchRec);
for i:=0 to HourFolders.Count-1 do
begin
Found := FindFirst(HourFolders[i]+'\*', faAnyFile, SearchRec);
while Found = 0 do
begin
if (SearchRec.Attr = faDirectory) then
begin
if (SearchRec.Name = 'Audio') then
begin
AudioFolders.Add(HourFolders[i]+'\'+SearchRec.Name);
end;
end
else begin
for j:=0 to DATA_TYPES.Count-1 do
begin
if (DATA_TYPES[j]+'.bid' = SearchRec.Name) then
if FileExists(HourFolders[i]+'\'+SearchRec.Name+'.done') then
begin
DoneFileList.Add(HourFolders[i]+'\'+SearchRec.Name+'.done');
end
else begin
DataFileList.Add(HourFolders[i] + '\' + SearchRec.Name);
Inc(DataFileCount);
end;
end;
end;
Found := FindNext(SearchRec);
end;
end;
FindClose(SearchRec);
for i:=0 to AudioFolders.Count-1 do
begin
Found := FindFirst(AudioFolders[i]+'\*', faAnyFile, SearchRec);
while Found = 0 do
begin
if RightStr(SearchRec.Name,4)='.bid' then
if FileExists(AudioFolders[i]+'\'+SearchRec.Name+'.done') then
begin
DoneFileList.Add(AudioFolders[i]+'\'+SearchRec.Name+'.done');
end
else begin
AudioFileList.Add(AudioFolders[i] + '\' + SearchRec.Name);
end;
Found := FindNext(SearchRec);
end;
end;
FindClose(SearchRec);
SiteFolders.Free;
DayFolders.Free;
HourFolders.Free;
AudioFolders.Free;
end;