Export (0) Print
Expand All

FileSystemTask.Source Property

Gets or sets the source file or directory. If IsSourcePathVariable is set to true, gets or sets the package variable name representing the source file or directory.

Namespace:  Microsoft.SqlServer.Dts.Tasks.FileSystemTask
Assembly:  Microsoft.SqlServer.FileSystemTask (in Microsoft.SqlServer.FileSystemTask.dll)

public string Source { get; set; }

Property Value

Type: String
A String that contains the connection manager or variable that contains the source folder or file information.

Implements

IDTSFileSystemTask.Source

If the source is not a variable, then the source is a file connection manager. The IsSourcePathVariable property determines if it is a variable.

The following code example creates a FileSystemTask as an Executable in a package. The FileSystemTask copies a test folder, which contains two subfolders and a .txt file, to another folder. The source is an existing folder, not a variable, so the IsSourcePathVariable is set to false, and the Source property is set to reference a FILE connection manager.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.FileSystemTask;

namespace FileSystemTask_API
{
    class Program
    {
        static void Main(string[] args)
        {
            String sourceDir = @"C:\TestFolder";
            String destDir = @"C:\MyNewTestFolder";

            Package pkg = new Package();
            Executable exec1 = pkg.Executables.Add("STOCK:FileSystemTask");
            TaskHost th = exec1 as TaskHost;
            
            // Show how to set properties using the TaskHost Properties.
            // Set the properties to copy an existing folder, which contains two subfolders
            // and a .txt file, to another existing folder on the C:\ drive.

            // The source or destination files are not in a variable, so set 
            // IsSourcePathVariable and IsDestinationPathVariable to false.
            th.Properties["IsSourcePathVariable"].SetValue(th, false);
            th.Properties["IsDestinationPathVariable"].SetValue(th, false);

            // Create the File connection manager for the source.
            ConnectionManager cm = pkg.Connections.Add("FILE");
            cm.Name = "The FILE connection manager";
            cm.ConnectionString = sourceDir;
            cm.Properties["FileUsageType"].SetValue(cm, DTSFileConnectionUsageType.FolderExists);

            // Create the File connection manager for the destination.
            ConnectionManager cmdest = pkg.Connections.Add("FILE");
            cmdest.Name = "The destination FILE connection manager";
            cmdest.ConnectionString = destDir;
            cmdest.Properties["FileUsageType"].SetValue(cmdest, DTSFileConnectionUsageType.FolderExists);

            // Set the source property and destination properties
            // for the task.
            th.Properties["Source"].SetValue(th, cm.Name);
            th.Properties["Destination"].SetValue(th, cmdest.Name);

            // The operation to perform is to copy all the files and
             // subfolders in a folder.
            // Do not overwrite the destination information 
            // if it exists.
            th.Properties["Operation"].SetValue(th, DTSFileSystemOperation.CopyDirectory);
            th.Properties["OperationName"].SetValue(th, "Copy TestFolder");
            th.Properties["OverwriteDestinationFile"].SetValue(th, false);

            // Set the attribute of the folder to be read-only.
            th.Properties["Attributes"].SetValue(th, DTSFileSystemAttributes.ReadOnly);
            // Multiple attributes can be set. The next line of code,
            // commented out, shows how to do that.
            //th.Properties["Attributes"].SetValue(th, DTSFileSystemAttributes.ReadOnly | DTSFileSystemAttributes.Hidden);

            // Run the task and copy the folder.
            DTSExecResult result = pkg.Execute();
        }
    }
}
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft