我正在检查是否存在两个文件,然后设置了一个条件,但是当我添加AND
时,我收到一条错误消息,指出语法不正确If (System.IO.Directory.GetFiles(CStr(Dts.Variables("VNetworkFolderName").Value), "Z_Attendance.xls").Length > 0
and System.IO.Directory.GetFiles(CStr(Dts.Variables("VNetworkFolderName").Value), "Z_EP.xls").Length > 0) Then
Dts.Variables("VCountAPAListFile").Value = True
Else
Dts.Variables("VCountAPAListFile").Value = False
End If
但如果我在不使用AND语句的情况下只检查一个文件,它就可以正常工作。
答案 0 :(得分:3)
在行终止前添加下划线_
以指示换行符。
If (System.IO.Directory.GetFiles(CStr(Dts.Variables("VNetworkFolderName").Value), "Z_Attendance.xls").Length > 0 _
And System.IO.Directory.GetFiles(CStr(Dts.Variables("VNetworkFolderName").Value), "Z_EP.xls").Length > 0) Then
Dts.Variables("VCountAPAListFile").Value = True
Else
Dts.Variables("VCountAPAListFile").Value = False
End If
答案 1 :(得分:1)
你需要在'和'之后放置换行符。或使用续行符(下划线)。此外,通常最好使用' AndAlso'在现代VB中。
If condition _
AndAlso otherCondition Then
DoThing()
Else
DoOtherThing()
End If
或者
If condition AndAlso
otherCondition Then
DoThing()
Else
DoOtherThing()
End If
答案 2 :(得分:1)
根据版本的不同,“And”应位于第一行,最后带有_。
If (System.IO.Directory.GetFiles(CStr(Dts.Variables("VNetworkFolderName").Value), "Z_Attendance.xls").Length > 0 And _
System.IO.Directory.GetFiles(CStr(Dts.Variables("VNetworkFolderName").Value), "Z_EP.xls").Length > 0) Then
Dts.Variables("VCountAPAListFile").Value = True
Else
Dts.Variables("VCountAPAListFile").Value = False
End If
答案 3 :(得分:0)
两次调用GetFiles
是一个坏主意。它将遍历目录中的所有文件夹两次!您最好使用File.Exists
代替:
Dim folderName As String = CStr(Dts.Variables("VNetworkFolderName").Value
Dim filename1 = Path.Combine(folderName, "Z_Attendance.xls")
Dim filename2 = Path.Combine(folderName, "Z_EP.xls")
Dts.Variables("VCountAPAListFile").Value = File.Exists(filename1) AndAlso File.Exists(filename2)