以下のフォルダ構造に存在する.txtファイルを処理する必要があります。すべての* .txtファイルをテーブルにロードする必要があります。私は、SSIS foreachループを使用し、 "Traverse Subfolders"がすべてのファイルをテーブルにロードしていることを確認することでそれを達成しました。複数のファイルを複数のフォルダで処理し、SSISを使用してフォルダをアーカイブする
ただし、ここで達成したい別の手順は、名前を変更して、ファイルを "C:\ MainFolder \ Archive"パスに処理した後に "SubfolderA"を移動することです。
ファイルごとにファイルシステムタスクを使用してこれを行うことができますが、私はこれをフォルダレベルで行いたいと思います。各フォルダが処理された後、フォルダをアーカイブフォルダに移動します。
C:\ MainFolder
C:\ MainFolder \アーカイブ
C:\メインフォルダ\ SubFolderA \
c.txtメインフォルダ\ SubFolderAの\ A.TXT、B.TXT、C:\
C:\メインフォルダ\ SubFolderB \
C:\ Main Folder \ SubFolderB \ a.txt、b.txt、c.txt
C:メインフォルダ\ \ SubFolderC
C \:\メインフォルダ\ SubFolderC \ A.TXT、B.TXT、c.txt
何を試しましたか?私はあなたにヒントを教えてくれます:あなたは外に '各フォルダーごとに'すべてのフォルダーを列挙し、その中にフォルダー内のファイルを処理するために '各ファイルごとに'必要とする必要があります。完了したら、フォルダを移動できます。 for-each-folder列挙子はありませんが、いくつかの回避策があります:http://microsoft-ssis.blogspot.com.au/2011/01/foreach-folder-enumerator.html –
私はあなたのアイデアとほとんどのパートは動作しますが、ファイルシステムタスクを使用して処理された後にディレクトリを移動したいときに使用します。ファイルだけを移動し、フォルダ自体は移動しません。あなたはそれを私に助けてくれますか?私が言っているのは、ソースフォルダ「C:\ Main Folder \ SubFolderB」から「C:\ MainFolder \ Archive」に移動することです。ファイルシステムタスクで「Move Directory」と言うと、その中のテキストファイルだけが移動します。 – user3255656
プロセスの実行タスクを使用する方が良いかもしれません。ここでは、DOS MOVEコマンドを実行するように設定する方法を示します。https://mitchellpearson.com/2015/06/05/move-files-in-ssis-using-execute-process-task/ここでは、フォルダ全体を移動します:https://www.windows-commandline.com/move-files-directories/あなたは現在のフォルダに移動するように、式を使って動的に値を設定するだけです。 –