Заявка за 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