我有一个软件包,它将带有区域名称的多个(14)csv文件保存到各自的Region(14)文件夹中。现在我想将所有新创建的14个csv文件复制到一个文件夹中。我如何通过SSIS实现它,任何人都可以帮助我实现它。
任何帮助都非常感激。
答案 0 :(得分:1)
有三种方法可以在SSIS中的目录之间复制文件:
您可以使用类似的命令来复制文件:
COPY c:\Source\*.txt c:\Destination
您可以编写一个小脚本,循环遍历目录中的文件并将其复制到目标
string fileName = string.Empty;
string destFile = string.Empty;
string sourcePath = @"C:\test1";
string targetPath = @"C:\test2";
// Create a new target folder, if necessary.
if (!System.IO.Directory.Exists(targetPath))
{
System.IO.Directory.CreateDirectory(targetPath);
}
if (System.IO.Directory.Exists(sourcePath))
{
string wildcard = "*.txt";
string[] files = System.IO.Directory.GetFiles(sourcePath, wildcard);
// Copy the files and overwrite destination files if they already exist.
foreach (string s in files)
{
fileName = System.IO.Path.GetFileName(s);
destFile = System.IO.Path.Combine(targetPath, fileName);
System.IO.File.Copy(s, destFile, true);
}
}
else
{
throw new Exception("Source path does not exist!");
}
参考:Copying all files in SSIS without Foreach
您可以参考以下某个链接,了解File System Task
的工作原理
答案 1 :(得分:0)
在脚本组件中:
DirectoryInfo ParentInfo = new DirectoryInfo(ParentDirectoryPath);
FileInfo[] FileArray = ParentInfo.GetFiles("*",SearchOption.AllDirectories);
foreach (FileInfo Fil in FileArray)
{
Fil.CopyTo(Destination Path);
}
未经测试,但有类似的内容
答案 2 :(得分:0)
使用C#可以更加具体,但是你可以使用foreach文件枚举器。
将路径映射到父文件夹,然后选择遍历子文件夹。
添加* .csv作为搜索字符串。
将完整路径映射到变量。
在foreach内部添加文件系统任务以复制文件。