2017-05-31 124 views
0

我試圖使用SSIS中的FTP任務和腳本任務將位於多個文件夾中的多個文件從FTP站點下載到特定驅動器上的多個文件夾中。我沒有將這些文件下載到一個特定的文件夾中。我到處尋找,找不到任何好的信息。任何幫助深表感謝。謝謝。從sftp使用ssis將多個文件下載到多個文件夾

+0

您到目前爲止嘗試過什麼? –

+0

文件和文件夾之間的鏈接是什麼?他們是否共享一些命名部分?或者目標文件夾與每個文件的源文件夾名稱相同?需要更多的信息。 –

+0

[下載SSIS中多個FTP文件夾中的文件]的可能的副本(https://stackoverflow.com/questions/20110156/download-files-from-multiple-ftp-folders-in-ssis) –

回答

0

如果你不使用腳本任務,出於某種原因需要,那麼這裏就是你想要做什麼:

  1. 創建的foreach循環容器
  2. Collection選項卡,Folder場,瀏覽到包含所有要從源FTP下拉文件的所有子文件夾的文件夾。 (這是使這樣的文件夾存在,它希望它也可以創建一個假設)
  3. 檢查Traverse Subfolders框,選擇Fully Qualified
  4. Variable Mappings選項卡,創建一個變量@FileNameWithPath或任何你想叫它。指數默認是好的。
  5. 創建名爲FileName
  6. 設置的FileName此表達的包變量,這將刪除路徑:

RIGHT(@[User::FileNameWithPath], FINDSTRING(REVERSE(@[User::FileNameWithPath]), "\\", 1)-1)

  • 創建一個包變量稱爲FilePrefix
  • 做出一個表達式將前綴從FileName中拉出。這將是這一點,如果你是第一個下劃線之前抓住一切:
  • LEFT(@[User::FileName],FINDSTRING(((DT_WSTR, 150) @[User::FileName]), "_", 1)-1)

  • 創建名爲DestinationFolder另一個變量。
  • 使用剛剛創建的FilePrefix變量來構建DestinationFolder的表達式。這將是這樣的:
  • "\\Your destination FTP\" + @[User::FilePrefix]

  • 在您的foreach循環容器中,添加一個File System Task
  • File System Task到移動或複製任何你需要的,與Source VariableFileNameWithPath,目標變量爲DestinationFolder
  • +0

    感謝您的信息,但有沒有辦法讓foreach循環連接到FTP服務器?你如何使foreach循環連接到FTP遠程路徑?我不知道這是可能的。謝謝! – Hmen

    +0

    當然,很樂意提供幫助 - 連接到FTP服務器,您只需要將完整路徑放到上面的第2步即可。如果需要特殊憑據,則可能還需要將FTP映射爲運行SSIS的服務器上的網絡驅動器。 @Hmen –

    +0

    謝謝!如果我有任何問題,我會嘗試將其作爲下一個工作驅動器並回復給您。 – Hmen

    相關問題