我想在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