Q: Can you use the date in a file name to create the subdirectory? So, when moving the attached file, we would like to create a sub-directory of:
C:\Users\niall\WindowsDatabase\Destination\Valuation\2021\06. Jun\ ,
Where ‘2021\06. Jun\’ is derived from the name of the source file? Thinking if we can pull a date variable/parameter from the filename we could pass it into the directory set-up. I can’t see how to get there.
A: Yes this is possible using some Pascal Script.
We received the following filename from the customer: ‘Valuation_2021-06-21.csv’. We’ll use this in the following example but remember we can adjust the script for any other filename you might have.
1.Using a Windows folder as Source:

2.Open our ‘Pascal Script’ option:

3. Add and enable the following ‘On Destination’ Pascal Script:
Var
tmpDate: TDateTime;
tmpDatePart: String;
tmpList: TStringList;
Function GetDateFromString(const aInput: String): TDateTime;
var
wYear, wMonth, wDay: Word;
Begin
wYear := StrToInt(Copy(aInput, 1, 4));
wMonth := StrToInt(Copy(aInput, 6, 2));
wDay := StrToInt(Copy(aInput, 9, 2));
Try
Result := EncodeDate(wYear, wMonth, wDay);
Except
Result := 0;
End;
End;
Begin
// Valuation_2021-06-21.csv
psExitCode:= 0;
// ... add your code here
tmpList := TStringList.create;
Try
tmpList.delimiter := '_';
tmpList.DelimitedText := psFileName;
If tmpList.Count >= 2 Then
Begin
tmpDatePart := tmpList.Strings[1];
psLogWrite(1, '', 'DatePart from File ' + psFilePath + psFileName + ': ' + tmpDatePart);
tmpDate := GetDateFromString(tmpDatePart);
// 2021\06. Jun\
If Not (tmpDate = 0) Then
Begin
psVSA := FormatDateTime('YYYY', tmpDate);
psVSA := psVSA + '\' + FormatDateTime('DD', tmpDate);
psVSA := psVSA + '. ' + FormatDateTime('MMM', tmpDate) + '\';
// Debug
psLogWrite(1, '', 'Result psVSA: ' + psVSA);
psExitCode := 1;
End
Else
psLogWrite(1, '', 'GetDateFromString Error, ' + tmpDatePart);
End
Else
psLogWrite(1, '', 'Count FileName _ Parts Error, ' + psFileName);
Finally
tmpList.free;
End;
End.

4. Adjust the ‘Create Subdir option’ to %VSA in your Destination Setup. We used a Windows folder as Destination in our example.

5. RunTime Log Result:

#FileTransfer
If you need any
info about this ‘date in a file name to create the subdirectory’ feature, please let us know.
Best regards,
Limagito Team