fix: 搁这最强大脑呢?

This commit is contained in:
tangge233
2024-08-20 14:24:40 +08:00
parent ddfc6897d7
commit ef5b0ba1f7
@@ -164,28 +164,28 @@
If Directory.Exists(TargetPath) Then If Directory.Exists(TargetPath) Then
Dim di As New DirectoryInfo(TargetPath) Dim di As New DirectoryInfo(TargetPath)
If di.GetDirectories.Length + di.GetFiles.Length = 0 Then Return If(AllowEmpty, 2, 0) If di.GetDirectories.Length + di.GetFiles.Length = 0 Then Return If(AllowEmpty, 2, 0)
'如果有一个文件不在列表,则 hasFalse = True '如果有一个文件不在列表,则 hasExclude = True
Dim hasFalse As Boolean = False Dim hasExclude As Boolean = False
'如果有一个文件在列表,则 hasTrue = True '如果有一个文件在列表,则 hasTrue = True
Dim hasTrue As Boolean = False Dim hasInclude As Boolean = False
For Each d In Directory.EnumerateDirectories(TargetPath) For Each d In Directory.EnumerateDirectories(TargetPath)
If Directory.EnumerateFileSystemEntries(d).Count = 0 Then Continue For If Directory.EnumerateFileSystemEntries(d).Count = 0 Then Continue For
Select Case IsSelected(d, True) Select Case IsSelected(d, True)
Case 0 Case 0
hasFalse = True hasExclude = True
Case 1 Case 1
Return 1 Return 1
Case 2 Case 2
hasTrue = True hasInclude = True
End Select End Select
If hasTrue AndAlso hasFalse Then Return 1 '如果有文件在、有文件不在列表中,可以断定部分选中 If hasInclude AndAlso hasExclude Then Return 1 '如果有文件在、有文件不在列表中,可以断定部分选中
Next Next
For Each f In Directory.EnumerateFiles(TargetPath) For Each f In Directory.EnumerateFiles(TargetPath)
If Selected.Contains(f) Then hasTrue = True Else hasFalse = True If Selected.Contains(f) Then hasInclude = True Else hasExclude = True
If hasTrue AndAlso hasFalse Then Return 1 '如果有文件在、有文件不在列表中,可以断定部分选中 If hasInclude AndAlso hasExclude Then Return 1 '如果有文件在、有文件不在列表中,可以断定部分选中
Next Next
If hasFalse AndAlso Not hasTrue Then Return 0 If hasExclude AndAlso Not hasInclude Then Return 0
If hasTrue AndAlso Not hasFalse Then Return 2 If hasInclude AndAlso Not hasExclude Then Return 2
End If End If
Return 0 Return 0
End Function End Function