Var tmpList: TStringList; tmpDateStr: String; tmpDate: TDateTime; Const ctDateFormat = 'YYYYMMDD'; ctFolder1 = 'C:\Test\Out\Folder1'; ctFolder2 = 'C:\Test\Out\Folder2'; Begin psExitCode:= 0; psVSA := ''; // ... add your code here // " file_20040218_1" that is Sunday so it go to folder1 // " file_20040221_1" that is Wednesday so it go to folder2 // " file_20040222_1" that is thursday so it go to folder2 also tmpList := TStringList.Create; Try tmpList.StrictDelimiter := True; tmpList.Delimiter := '_'; tmpList.QuoteChar := #; tmpList.DelimitedText := psFileName; // Check If tmpList.Count >= 3 Then Begin tmpDateStr := tmpList.Strings[1]; psLogWrite(1, '', 'File ' + psFilePath + psFileName + ' datepart: ' + tmpDateStr); tmpDate := psStrToDate(tmpDateStr, ctDateFormat, #0); If tmpDate <> 0 then Begin psExitCode := 1; Case DayOfTheWeek(tmpDate) Of 1: Begin psLogWrite(1, '', psFileName + ' = Monday'); psVSA := ctFolder1; End; 2: Begin psLogWrite(1, '', psFileName + ' = Tuesday'); psVSA := ctFolder1; End; 3: Begin psLogWrite(1, '', psFileName + ' = Wednesday'); psVSA := ctFolder1; End; 4: Begin psLogWrite(1, '', psFileName + ' = Thursday'); psVSA := ctFolder1; End; 5: Begin psLogWrite(1, '', psFileName + ' = Friday'); psVSA := ctFolder1; End; 6: Begin psLogWrite(1, '', psFileName + ' = Saturday'); psVSA := ctFolder2; End; 7: Begin psLogWrite(1, '', psFileName + ' = Sunday'); psVSA := ctFolder2; End; End; End Else psLogWrite(1, '', 'Filename datepart not valid, check: ' + psFilePath + psFileName); End Else psLogWrite(1, '', 'Filename structure not valid, check: ' + psFilePath + psFileName); Finally tmpList.Free; End; End.