Запрос Visual Basic: удалить файлы с определенным расширением, но пропустить имена файлов с тем же расширением, которые находятся в текстовом файле.

У меня есть вопрос, который я пытался найти, но я не могу найти учебники по нему.

Я надеюсь использовать консольное приложение для удаления файлов с определенным расширением, например файлов .zip, но не удалять файлы с тем же расширением, имена файлов которых находятся в текстовом файле.

Пример содержимого в текстовом файле:

Папка1\имя_файла1.zip

Папка2\имя файла2.zip

Имя файла3.zip

Имя файла4.zip

Каждое имя файла записывается на отдельной строке в текстовом файле. Как видите, некоторые zip-файлы находятся в корневом каталоге, где находится консольное приложение, а некоторые — в папках в корневом каталоге.

Я попытался использовать My.computer.filesystem.getfiles и выполнить поиск «*.zip» на всех уровнях, но затем мне не удалось продолжить, так как я не знаю, как удалить все zip-файлы, которых нет в текстовом файле.

Буду очень признателен, если кто-нибудь покажет мне пример кода, как заставить это работать в консольном приложении.

Если это не слишком сложно, можно также показать пример кода для реверса, где удаляются только zip-файлы, имена файлов которых находятся в текстовом файле.

Я замечаю, что когда в именах файлов есть такие символы, как ' и ~, и ошибка недопустимого символа будет отображаться каждый раз, когда я пытаюсь удалить файл с помощью My.computer.filesystem.deletefile (если я правильно помню код). Я пробовал искать учебники, но это не сработало для меня. Если это возможно, показанный пример кода также может решить эту проблему. Было бы хорошо также объяснить, как это работает, если это возможно, поскольку мне любопытно узнать, как будет работать код. Спасибо.

Извините, я все еще новичок, поэтому пытаюсь читать примеры других кодов, чтобы понять, как это работает, и применить его. Спасибо. Ценить это.

В настоящее время я использую язык программирования Visual Basic для кодирования.


person user4740515    schedule 02.04.2015    source источник


Ответы (1)


Вы не можете назвать файл недопустимым символом, так как вы хотите его удалить?

 Dim txtFile As String = IO.File.ReadAllText("PATH Here")
        Dim TheNewJ As New List(Of String)
        For Each Path As String In Split(txtFile, vbCrLf)
            If Path.Trim <> "" Then
                If Path.EndsWith(".zip") Then
                        If IO.File.Exists(Path) Then
                        TheNewJ.Add(Path)
                    End If
                End If
            End If
        Next
        txtFile = Join(TheNewJ.ToArray, vbCrLf + vbCrLf) '2 of vbcrlf to add the line,1 without line 
person PT_01    schedule 02.04.2015
comment
Странно, я думал, что вы можете называть файлы с помощью ' или ~ в нем. Я постараюсь показать пример, когда вернусь домой. - person user4740515; 02.04.2015
comment
Спасибо за ваш ответ и помощь. Ценить это. Я попробую код позже. :) - person user4740515; 02.04.2015
comment
Да, вы можете назвать файл с помощью ' или ~, но эти символы не являются недопустимыми. - person PT_01; 02.04.2015