Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Передача объекта в функцию (http://forum.oszone.net/showthread.php?t=111642)

ven00m 17-07-2008 13:47 854008

Передача объекта в функцию
 
Вобщем надо написать скрипт для отчистки каталога со всеми подкаталогами (хз скока их там) от всяких ненужных файлов. Так как количество подкаталогов неизвестно то кроме как при помощи рекурсии имхо это не сделать, но у мну не получается передать в функцию каталог как объект. Заранее благодарен за помощь.
Код:

'On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")

Set Folder = FSO.GetFolder("c:\test\") ' Начальный каталог

Function Cleaner ( byRef Folder )

        For Each File in Folder.Files' Ищем в каталоге мусор среди файлов
                If File.Name = "$*" Or File.Name = "Thumbs.db" Or File.Name = "*.TMP" Then ' по маске
                        'File.Delete 'удаляем
                        WScript.Echo File.Name
                End If
        Next
       
        For Each subFolder in Folder.SubFolders
                Cleaner ( subFolder )' вызываем эту же функцию для каждого подкоталога
        Next
               
End Function


Petya V4sechkin 17-07-2008 15:39 854174

ven00m, эта строка явно не к месту:
Цитата:

Цитата ven00m
If File.Name = "$*" Or File.Name = "Thumbs.db" Or File.Name = "*.TMP" Then

Так работает:
Код:

Set FSO = CreateObject("Scripting.FileSystemObject")

Set F = FSO.GetFolder("c:\test\") ' Начальный каталог
Cleaner F

Sub Cleaner(Folder)
  On Error Resume Next

  FSO.DeleteFile Folder.Path + "\$*", True
  FSO.DeleteFile Folder.Path + "\Thumbs.db", True
  FSO.DeleteFile Folder.Path + "\*.TMP", True

  For Each subFolder in Folder.SubFolders
    Cleaner subFolder
  Next
End Sub


Busla 17-07-2008 15:45 854185

функцию объявил, а где её вызов?

ven00m 17-07-2008 16:13 854223

Спасибо петруха. Все зашибись работает :cool:


Время: 14:21.

Время: 14:21.
© OSzone.net 2001-