11

SSIS から特定のフォルダーにファイルが存在するかどうかを確認したいと考えています。どうすればこれを達成できますか?

4

4 に答える 4

10

変数:

フォルダー - 文字列 - 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;
}
于 2013-07-10T14:49:10.847 に答える
6

Foreach Loop Containerすべてのアイテムを使用して、そこに置くだけです。ファイルが存在する場合は実行され、存在しない場合は実行されません。とてもシンプルです:)

于 2015-04-01T13:47:28.253 に答える
3

「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;
    }

}
于 2014-10-09T14:34:26.207 に答える
1

このチェックを実行できる SSIS 内のネイティブ タスクはありませんが、スクリプト タスクを使用してこれを実行できますが、それを実行するために必要な簡単な手順については、次のリンクを確認することをお勧めします。

http://www.bidn.com/blogs/DevinKnight/ssis/76/does-file-exist-check-in-ssis

http://sqlmag.com/sql-server-integration-services/simple-effective-way-tell-whether-file-exists-using-ssis-package

于 2013-07-10T12:26:23.033 に答える