2017-01-19 2 views
2

Я пытаюсь закрыть мое приложение, пока все файлы в определенных каталогах не будут иметь определенный префикс. В моем основном каталоге есть 5 подкаталогов, но я должен сделать это только для поиска в нем 3 определенных подкаталога? Я хочу, чтобы приложение, чтобы быть не в состоянии не закрывать, если все файлы в этих 3 поддиректорий имеют префикс ...Можно ли искать определенные каталоги внутри каталога?

Это код, который я до сих пор

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing 

e.Cancel = True 

    Dim directory As New IO.DirectoryInfo(dir) 

    For Each file In directory.EnumerateFiles("*.txt", IO.SearchOption.TopDirectoryOnly) 

     If file.Name.Contains("prefix.") Then 
      e.Cancel = False 
     Else e.Cancel = True 

     End If 


    Next 

ответ

0

Если у вас есть только поиск 3 из 5 подкаталогов, я предполагаю, что их имя/путь статичен. Если это так, это сработает.

Dim directoriesToSearch() As String = {"C:\TopDirectory\SubDir1", "C:\TopDirectory\SubDir2", "C:\TopDirectory\SubDir3"} 
Dim sb As New StringBuilder() 

For Each d In directoriesToSearch 
    Dim directory As New IO.DirectoryInfo(d) 

    For Each f As FileInfo In directory.EnumerateFiles() 
    If f.Name.IndexOf("myPrefix") <> 0 Then 
     Dim message As String = String.Format("The directory {0} does not have the valid prefix.", d) 
     sb.AppendLine(message) 
    End If 
    Next 
Next 

If sb.Length > 0 Then 
    MessageBox.Show(sb.ToString) 
End If 
+1

Спасибо, человек, вы действительно помогли мне – jdwee

 Смежные вопросы

  • Нет связанных вопросов^_^