Почему моя петля удаляет только один файл? - PullRequest
1 голос
/ 15 ноября 2009

Использование VB6

В папке n файлов, я хочу удалить файлы размером 0 КБ

код

Dim filename5 As String
filename5 = Dir$(txtsourcedatabasefile & "\*_*", vbDirectory)
MsgBox filename5
Do While filename5 <> ""
    If FileLen(txtsourcedatabasefile & "\" & filename5) = 0 Then
        Kill txtsourcedatabasefile & "\" & filename5
    End If
Loop 

txtsourcedatabasefile - путь

Приведенный выше код удаляет только один файл, оставшийся файл не удаляется. Отображение ошибки, поскольку файл не найден.

Что не так в моем коде?

Нужен справочный код VB6

Ответы [ 2 ]

4 голосов
/ 15 ноября 2009

Вам необходимо добавить следующую строку перед строкой "Loop":

filename5 = Dir

Например, см .: http://msdn.microsoft.com/en-us/library/aa262727(VS.60).aspx

0 голосов
/ 06 января 2013

Вы должны снова вызвать функцию Dir без аргументов. Это делается путем помещения функции Dir в цикл

Dim filename5 As String
filename5 = Dir$(txtsourcedatabasefile & "\*_*", vbDirectory)
MsgBox filename5

Do While filename5 <> ""
    If FileLen(txtsourcedatabasefile & "\" & filename5) = 0 Then
        Kill txtsourcedatabasefile & "\" & filename5
        filename5 = Dir
    End If
Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...