Удалить часть времени из полного пути к файлу
Предполагается, что полный путь к файлу хранится в переменной с именем @[User::FilePath]
Необходимо добавить переменную типа string (пример: @[User::Filename]
), перед задачей потока данных добавить Expression Task
и использовать следующее выражение:
@[User::Filename] = SUBSTRING(@[User::FilePath], 1, LEN(@[User::FilePath]) -
FINDSTRING(REVERSE(@[User::FilePath]), "\\", 1)) + "\\" +
LEFT(TOKEN(@[User::FilePath],"\\",TOKENCOUNT(@[User::FilePath],"\\")),
LEN(TOKEN(@[User::FilePath],"\\",TOKENCOUNT(@[User::FilePath],"\\"))) - 10) + ".txt"
Пример:
Если значение @[User::FilePath]
равно
C: \ Новая папка \ 1 \ Filename_20190503001221.txt
Тогда @[User::Filename]
будет:
C: \ Новая папка \ 1 \ Filename_20190503.txt
Если у вас есть только имя файла как
filename_20190503001221.txt
и путь к папке хранится в другой переменной, просто используйте следующее выражение:
@[User::Filename] = @[User::Folderpath] + "\\" +
LEFT(TOKEN(@[User::FilePath],"\\",TOKENCOUNT(@[User::FilePath],"\\")),
LEN(TOKEN(@[User::FilePath],"\\",TOKENCOUNT(@[User::FilePath],"\\"))) - 10) + ".txt"
Чтение источника файла из переменной
Щелкните диспетчер соединений с плоскими файлами, используемый для чтения исходного файла, нажмите F4 , чтобы отобразить вкладку свойств, щелкните свойство выражения и назначьте следующее выражение свойству connectionstring
:
@[User::Filename]
Теперь измените значение свойства Task Flow Delay validation
на True
.