在 ssis 中使用 c# 在脚本任务中存档文件
Archive file in Script task using c# in ssis
我想使用脚本 task.filename 归档带日期的文件,就像 abc_x1.csv 一样。一旦下一个文件像 abc_x2.csv 一样,文件将每月发送一次
需要在 _.csv 之后以任何名称存档文件,日期在扩展名之前。我正在使用下面的代码,这是行不通的。任何人都可以帮助我 this.using 脚本中的 C# 代码 task.script 任务在 for each 循环容器中使用。
public void Main()
{ String sDateSuffix = DateTime.Now.ToString("yyyyMMddhhmmss");
String ArchiveDir = Dts.Variables["V_ArchiveDir"].Value.ToString();
String FileName = Dts.Variables["V_FileName"].Value.ToString()+sDateSuffix;
File.Move(Dts.Variables["V_FilePath"].Value.ToString() +FileName, ArchiveDir + FileName);
Dts.TaskResult = (int)ScriptResults.Success;
}
如果我对您的理解正确,您是在尝试将 sDateSuffix 附加到您的文件名,但在 .csv 扩展名之前。如果是这样,我认为您只需要使用 Path.GetFileNameWithoutExtension():
String sDateSuffix = DateTime.Now.ToString("yyyyMMddhhmmss");
String ArchiveDir = Dts.Variables["V_ArchiveDir"].Value.ToString();
String V_FileName = Dts.Variables["V_FileName"].Value.ToString();
//Assuming V_FileName = "abc_x1.csv", FileName will be "abc_x120150430080000.csv"
String FileName = Path.GetFileNameWithoutExtension(V_FileName) + sDateSuffix + Path.GetExtension(V_FileName);
我想使用脚本 task.filename 归档带日期的文件,就像 abc_x1.csv 一样。一旦下一个文件像 abc_x2.csv 一样,文件将每月发送一次 需要在 _.csv 之后以任何名称存档文件,日期在扩展名之前。我正在使用下面的代码,这是行不通的。任何人都可以帮助我 this.using 脚本中的 C# 代码 task.script 任务在 for each 循环容器中使用。
public void Main()
{ String sDateSuffix = DateTime.Now.ToString("yyyyMMddhhmmss");
String ArchiveDir = Dts.Variables["V_ArchiveDir"].Value.ToString();
String FileName = Dts.Variables["V_FileName"].Value.ToString()+sDateSuffix;
File.Move(Dts.Variables["V_FilePath"].Value.ToString() +FileName, ArchiveDir + FileName);
Dts.TaskResult = (int)ScriptResults.Success;
}
如果我对您的理解正确,您是在尝试将 sDateSuffix 附加到您的文件名,但在 .csv 扩展名之前。如果是这样,我认为您只需要使用 Path.GetFileNameWithoutExtension():
String sDateSuffix = DateTime.Now.ToString("yyyyMMddhhmmss");
String ArchiveDir = Dts.Variables["V_ArchiveDir"].Value.ToString();
String V_FileName = Dts.Variables["V_FileName"].Value.ToString();
//Assuming V_FileName = "abc_x1.csv", FileName will be "abc_x120150430080000.csv"
String FileName = Path.GetFileNameWithoutExtension(V_FileName) + sDateSuffix + Path.GetExtension(V_FileName);