我想在SSIS 2005中開發一個包,我的部分流程是檢查網絡上的文件是否爲空。如果它不是空的,我需要傳遞一個成功的狀態,否則,我需要傳遞一個不成功的狀態。我想我需要一個腳本任務,但不知道如何去做。任何幫助表示讚賞。確定文件是否爲空(SSIS)
4
A
回答
0
是的,腳本任務將在這裏完成這項工作。將一個使用的System.IO語句添加到腳本的頂部,然後在Main方法中沿着以下幾行的內容檢查文件的內容。
public void Main()
{
String FilePath = Dts.Variables["User::FilePath"].Value.ToString();
String strContents;
StreamReader sReader;
sReader = File.OpenText(FilePath);
strContents = sReader.ReadToEnd();
sReader.Close();
if (strContents.Length==0)
MessageBox.Show("Empty file");
Dts.TaskResult = (int)ScriptResults.Success;
}
編輯:VB.Net版本2005 ...
Public Sub Main()
Dim FilePath As String = Dts.Variables("User::FilePath").Value.ToString()
Dim strContents As String
Dim sReader As StreamReader
sReader = File.OpenText(FilePath)
strContents = sReader.ReadToEnd()
sReader.Close()
If strContents.Length = 0 Then
MessageBox.Show("Empty file")
End If
Dts.TaskResult = ScriptResults.Success
End Sub
11
創建的連接管理器面板的平面文件的連接。 在控制流選項卡下,添加數據流任務。
雙擊數據流任務並添加平面文件來源和行計數項目。
在行計數屬性中,創建一個RowCount變量。
在Control Flow選項卡中,根據@RowCount的結果創建控制流連接。
2
有兩種方法可以做到這一點:
如果文件空手段大小= 0,你可以創建一個腳本任務做檢查: http://msdn.microsoft.com/en-us/library/ms345166.aspx
If My.Computer.FileSystem.FileExists("c:\myfile.txt") Then
Dim myFileInfo As System.IO.FileInfo
myFileInfo = My.Computer.FileSystem.GetFileInfo("c:\myfile.txt")
If myFileInfo.Length = 0 Then
Dts.Variables["Status"].Value = 0
End If
End If
否則,如果文件爲空表示沒有行(平面文件),您可以在讀取文件後使用行計數轉換。您可以使用行計數編輯器中的'VariableName'屬性從行計數中設置一個變量,並將其用作狀態。
0
添加一個簡單的腳本任務用下面的代碼(C#)應該做的伎倆:
String FilePath = (string)Dts.Variables["User::FilePath"].Value;
var length = new System.IO.FileInfo(FilePath).Length;
if (length == 0)
Dts.TaskResult = (int)ScriptResults.Success;
else
Dts.TaskResult = (int)ScriptResults.Failure;
此選項將運行很多比接受的答案更快,因爲它並不需要讀取整個文件,如果你正在循環訪問一個文件夾,其中一些文件很大,在我的情況下~800mb,接受的答案需要很長時間才能運行,這個解決方案在幾秒鐘內運行。
相關問題
- 1. Unix確定文件是否爲空
- 2. 確定NSFetchedResultsController是否爲空
- 3. 確定pcollection是否爲空
- 4. 確定文件是否爲空(php)的最佳方法?
- 5. 確定音頻文件是否爲VBR
- 6. 確定文件是否爲圖標
- 7. 確定對象屬性是否爲空
- 8. 確定一個包是否爲空
- 9. 如何確定函數是否爲空
- 10. 如何確定NSString是否爲空
- 11. 確定$ _POST [「X」]是否爲空
- 12. 如何確定集合是否爲空
- 13. 檢查以確定ofstream是否爲空?
- 14. 如何確定給定文件是否爲xml valide文件
- 15. 確定文本是否爲英文?
- 16. Cordova Inappbrowser loadstart事件確定目標是否爲空
- 17. 如何準確確定SPFile實例是否爲轉換文件?
- 18. SSIS創建空文件
- 19. 如何確定文件是否是Eclipse中的文本文件
- 20. 確定文件夾是否存在?
- 21. 確定是否存在XDocument文件
- 22. 確定文件是否打開
- 23. 確定文件是否已更改
- 24. C++檢查文件是否爲空
- 25. Java檢查文件是否爲空:IOException:null
- 26. ANT:檢查文件是否爲空
- 27. 檢查文件是否爲空或不
- 28. 檢查Excel文件是否爲空C#
- 29. 檢測文件名是否爲空
- 30. Python - 檢查文件是否爲空
這很好。謝謝! – DoubleJ92 2011-02-24 20:14:08
與使用「行計數」項目的解決方案相比,編寫腳本看起來過於複雜。 – 2014-01-14 01:08:51
我應該在哪裏添加腳本?圖片圖對此會非常有幫助。謝謝 :) – Si8 2014-04-04 14:01:49