When working with disconnected sources or remote systems in SSIS, source data is often received in the form of files. A common requirement is to rename the file once the data import/processing is completed.
I looked at the File System task in my previous post. The file system task appears to be the best way to implement this requirement. However, we run into something that is unexpected:
The “Move File” operation moves a file from one folder to another. It does not rename the file.
Let me leverage the same example as I had in my previous post. I have a set of files in a folder and an SSIS package that is configured to rename the files.
The destination file name comes from an expression that uses basic string concatenation to achieve the required target file name. The expression used in the destination file name variable is provided below.
@[User::SourceFolder] + SUBSTRING(@[User::FileName], 1, FINDSTRING(@[User::FileName],".",1) -1 ) + (DT_WSTR,4)YEAR(GETDATE()) + (DT_WSTR,2)MONTH(GETDATE()) + (DT_WSTR,2)DAY(GETDATE()) + SUBSTRING(@[User::FileName], FINDSTRING(@[User::FileName],".",1), LEN(@[User::FileName]))
Move File Operation
The File System Task in this package has been designed to use variables as the source and destination file names. The File System task is configured to perform a “Move File” operation.
File System Task in the “Move File” configuration
Upon running the SSIS package, no files are processed and we run into an error.
Looking at the error in detail, we see that the error is:
Could not find a part of the path.
Using the Rename File configuration
If we change the operation type to the “Rename File” configuration, we can see that the movement is successful.
Behind the scenes
So, why is the File System task not behaving as expected? If the File System configuration is set to “Move File”, why did the files not move to the target folder?
The reason is quite simple: “Move File” only moves a file – it cannot rename a file during the movement of the file.
In short, one has to configure the File System task in a “Rename File” configuration if a file has to be renamed – irrespective of whether the rename is in-place or in a different folder.
Until we meet next time,
Be courteous. Drive responsibly.
Pingback: #0421 – SQL Server – SSIS – Wild card search to find if a file exists in a folder or directory | SQLTwins by Nakul Vachhrajani
Pingback: #0422 – SQL Server – SSIS – Delete or rename files and perform other file operations without a script or writing code | SQLTwins by Nakul Vachhrajani