Исключение поиска файла с подстановочными символами vb.net - PullRequest
0 голосов
/ 09 ноября 2018

я абсолютно новичок в vb.net

Я понял, как найти файлы, используя подстановочный знак, и он работает нормально, но мне нужен метод сообщения об ошибке, если файл не найден. вот мой код любая помощь высоко ценится!

    For Each hist In Directory.GetFiles("C:\temp", "*.*", SearchOption.TopDirectoryOnly)
        If File.Exists(hist) Then
            File.Copy(hist, Path.Combine("C:\temp\1", Path.GetFileName(hist)), True)
            MessageBox.Show("file exist and copied") <-- this message shows up and files are copied

        Else

            MessageBox.Show("No files. Folder is empty !") <--this message never shows up when folder is empty . no files at all


        End If

    Next

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

у меня получилось. вот что я добавил перед foreach:

Dim myDir As DirectoryInfo = New DirectoryInfo("c:\temp\")
        If (myDir.EnumerateFiles().Any()) Then


 foreach ....


else

MessageBox.Show("no files in directory ")   <-- my message

спасибо за совет !!

0 голосов
/ 09 ноября 2018

Вряд ли вы увидите это второе сообщение. Вы извлекаете список файлов непосредственно из операционной системы, поэтому, по крайней мере, во время получения имени файла этот файл существует. Если вы хотите смоделировать случай, когда файл не существует, поместите точку останова в строку IF File.Exists (hist) Then . Пока программа приостановлена, найдите и удалите текущий файл. Затем продолжите программу.

...