檢查檔案是否存在的步驟

要完成此目標,需要執行以下任務。

  1. Foreach 迴圈容器: 迭代使用者配置的檔案目錄。
  2. 表示式任務: 如果檔案存在則更新變數。

腳步

  1. 首先轉到**解決方案資源管理器,**雙擊 Project.params 並建立一個型別為 string 的引數 FolderPath ,將值設定為 E:\ DataDir \ SourceFiles。

  2. 建立使用者變數 FileNameFromFolder (String), FileToSearch (String)分配要檢查的值並建立變數 IsFound (Boolean)。

  3. 從容器部分下的 SSIS 工具箱中拖放 Foreach 迴圈容器

  4. 雙擊 Foreach 迴圈編輯器左側的 Foreach 迴圈容器,單擊 Collection 。在右側將 Enumerator 設定為 Foreach 檔案列舉器,現在為表示式單擊將開啟屬性表示式編輯器的三個點。選擇 Directory 作為屬性,對於表示式選擇 @ [$ Project::FolderPath] 。單擊確定。 StackOverflow 文件

  5. 現在在 Foreach 迴圈編輯器中,對於 Files set * .txt 的值,對於 Retrieve 檔名的值,選擇 Name only,通常我們選擇 Fully Qualified,因為它返回帶有完整路徑的檔名。如果資料夾中可以有多個*資料夾,*請檢查 Traverse 子資料夾。 StackOverflow 文件

  6. 在左側選擇 Variable Mappings ,在右側選擇 User::FileNameFromFolder ,它將自動將 Index 設定為 0. FolderPath 中的檔名將逐個分配給 FileNameFromFolder 變數。單擊確定。 StackOverflow 文件

  7. 將“ 表示式任務” 拖放到 *Foreach 迴圈容器中,*從公共部分下的 SSIS 工具箱中拖放。

  8. 雙擊表示式任務,在表示式生成器中編寫以下程式碼。單擊確定。

    @ [User::IsFound] = @ [User::FileNameFromFolder] == @ [User::FileToSearch]?真假 StackOverflow 文件

  9. 上面的程式碼將我們要檢查的檔名與資料夾中的檔名進行比較,如果兩者匹配,則將 IsFound 設定為 True(檔案存在)。

  10. 現在 IsFound 的值可以根據需要與優先約束一起使用。