#vb.net
#vb.net
Вопрос:
Я пытаюсь написать код, используя vb.net но я застрял в For Each
цикле и надеюсь, что кто-нибудь сможет помочь.
Я пытаюсь искать файлы по расширению, и я использовал For Each
цикл следующим образом:
For Each XMLLFILE In Directory.GetFiles(directoryName, "*.xmll", SearchOption.TopDirectoryOnly)
После этого я пытаюсь добавить условие для удаления искомых файлов, а если нет, то для вывода всплывающего сообщения о том, что файлы не найдены. Остальная часть кода:
If My.Computer.FileSystem.FileExists(XMLLFILE) Then
File.Delete(XMLLFILE)
MsgBox("Files Deleted !", vbOKOnly, "DeleteXMLL Files")
Else
MsgBox("There's No files to be Deleted !", vbOKOnly, "DeleteXMLL Files")
End If
Exit For
Next
End If
Я получаю окно сообщения при каждом удалении файла (повторно), если внутри папки нет файлов, я вообще не получаю окно сообщения.
Кто-нибудь может помочь с кодом?
Ответ №1:
GetFiles()
Метод возвращает файлы, которые действительно существуют в этой папке. Ваш If
оператор проверяет, существует ли каждый из этих файлов, что не имеет смысла (потому что мы уже знаем, что они существуют). Вместо этого вы должны проверить, GetFiles()
возвращает ли какие-либо файлы.
Попробуйте что-то вроде следующего:
' Find the files and store them in a String array.
Dim filesToDelete As String() =
Directory.GetFiles(directoryName, "*.xmll", SearchOption.TopDirectoryOnly)
' If some files are found,...
If filesToDelete.Any() Then
' Delete each one of them...
For Each XMLLFILE In filesToDelete
File.Delete(XMLLFILE)
Next
' ..and then display a success message.
MsgBox("Files Deleted!", vbOKOnly, "DeleteXMLL Files")
Else
' If not, display a different message.
MsgBox("There are No files to be Deleted!", vbOKOnly, "DeleteXMLL Files")
End If