SSISの特定のフォルダーにファイルが存在するかどうかを確認したい。どうすればこれを達成できますか?
変数:
フォルダー-文字列-C ::\Temp \
ファイル-文字列-1.txt
fileExists-ブール値-False
public void Main()
{
string folder = Dts.Variables["User::folder"].Value.ToString(); //@"C:\temp\";
string file = Dts.Variables["User::file"].Value.ToString(); //"a.txt";
string fullPath = string.Format(@"{0}\{1}", folder, file);
Dts.Variables["User::fileExists"].Value = File.Exists(fullPath);
Dts.TaskResult = (int)ScriptResults.Success;
}
Foreach Loop Container
を使用して、すべてのアイテムをそこに配置するだけです。ファイルが存在する場合は実行され、存在しない場合は実行されません。非常に簡単:)
「out」変数を持つ代わりに、Dts.TaskResult
ファイルが存在するかどうかに基づきます。ファイルが存在しない場合、以下のスニペットはスクリプトタスクに失敗します。 (ロギングが有効な場合、ログエントリも作成されます。)
public void Main()
{
string fileName = Dts.Variables["User::sourcePath"].Value.ToString() + Dts.Variables["User::fileName"].Value.ToString();
if (File.Exists(fileName))
{
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.Log(string.Format("File {0} was not found.",fileName),0,null);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
このチェックを実行できるSSIS内のネイティブタスクはありませんが、スクリプトタスクを使用してこれを実現できますが、それを実現するために必要な簡単な手順については、次のリンクを確認することをお勧めします。
http://www.bidn.com/blogs/DevinKnight/ssis/76/does-file-exist-check-in-ssis