回答
我檢查了文件存在,使用Script Task,然後進行相應的分支。
你可以做這樣的事情
If System.IO.File.Exists("\\Server\Share\Folder\File.Ext") Then
Dts.TaskResult = Dts.Results.Success
Else
Dts.TaskResult = Dts.Results.Failure
End If
雖然有這個沒有本地組件,也有幾個SSIS第三方組件,你可以使用這個目的。
SSIS中的File System Task基本上用於移動,複製,刪除等,但不支持文件存在檢查。
@Raj更給出了一個很好的解決方案。我之前使用過的另一種方法是創建一個Foreach循環容器,該文檔循環遍歷文件系統中的文件規範。如果您知道所需文件的名稱,則可以在變量中設置該名稱,並將該規範設置爲等於Foreach循環容器表達式選項卡中的變量。如果您不知道確切的名稱,但知道命名約定或知道該文件夾中沒有其他文件,您也可以只指定一個目錄或部分文件名。
如果您想根據是否存在文件採取特定操作,則可以創建一個默認值爲0的變量,並在Foreach循環容器中創建一個腳本任務,以增加該變量。如果要執行每個單獨文件的存在,您也可以將這些命令放在要執行的Foreach循環容器中。如果你想根據缺少文件來採取行動,那麼你可以在Foreach循環容器之後限制你的優先約束,以便限制約束和表達式,並且檢查計數器變量是否大於0.
@拉傑的解決方案也可以用來增加變量。相反,使用的if else引發錯誤或成功的結果,你可以這樣做:
C#
if (System.IO.File.Exists("\\Server\Share\Folder\File.Ext"))
{ Dts.Variables["my_case_sensitive_variable_name"].Value = Dts.Variables["my_case_sensitive_variable_name"].Value + 1;
}
VB.NET
If System.IO.File.Exists("\\Server\Share\Folder\File.Ext") Then
Dts.Variables["my_case_sensitive_variable_name"].Value = Dts.Variables["my_case_sensitive_variable_name"].Value + 1
End If
的這種方法的優點在沒有文件的情況下,包可能不需要失敗。如果文件發生變化,您也可以使用變量名稱,您可以將其定義爲包中的變量或僅在腳本任務中創建。 @ Raj的方法的唯一不足就是你必須知道你想檢查的文件名。
另一種可能性是執行文件系統任務以將文件重命名爲其現有名稱或將文件複製到其現有位置。如果該文件不存在,那麼您可以將錯誤路由到一個操作。我不推薦這種解決方案,但我記得幾年前在一個實際上有意義的實例中使用它。但在那個特殊的例子中,我實際上是把它複製到一個真實的位置。
祝你好運!
- 1. 檢查字符串以查看文件是否存在本地
- 2. 如何檢查文件是否存在
- 3. 如何檢查文件是否存在?
- 4. 如何檢查文件是否存在?
- 5. 如何檢查文件是否存在?
- 6. 如何檢查文件是否存在
- 7. 如何檢查目錄以查看它是否有文件
- 8. SSIS包 - 通過文件夾循環,以檢查是否存在文件
- 9. 檢查文件路徑是否正確,但不檢查文件是否存在
- 10. 如何獲取Inno Setup以檢查文件是否不存在
- 11. 如何檢查子文件夾文本文件是否存在
- 12. 如何檢查文件是否存在於生成文件
- 13. 如何檢查文件夾中是否已存在文件
- 14. 如何檢查chm文件中是否存在子文件?
- 15. 如何檢查文件夾中是否存在文件?
- 16. 如何檢查文件夾中是否存在文件C
- 17. 如何檢查zip文件中是否存在文件
- 18. 如何檢查文件是否存在於war文件中?
- 19. 如何檢查文件是否存在文件擴展名? C#
- 20. 檢查CakePHP中語言文件夾中的查看文件是否存在
- 21. 是否可以檢查是否在CSV文件中存在串
- 22. 檢查文件是否存在
- 23. 檢查文件是否存在Try/Catch
- 24. Java:檢查文件是否存在
- 25. 的Javascript檢查文件是否存在
- 26. 檢查IMAP是否存在文件夾
- 27. 檢查SCHTASKS文件是否存在
- 28. VBA檢查文件是否存在
- 29. 檢查JList中是否存在文件
- 30. 檢查文件是否存在Linux bash
我喜歡for循環的想法。 +1 – 2010-04-13 23:30:36