Скрытые папки
Home Up Автозапись Буфер обмена Долой пробелы DOS-программы Контролы в массиве Редактор VB Скрытые папки INI-файлы Лог-файлы Миминизация Звук в MP3 Советы

Игорь Шаронов спрашивал как удалить скрытую папку , если заранее ее имя неизвестно. Вот что наклепалось по этому поводу. Пример просто ищет скрытую папку - а уж что с ней делать решать вам ;)

Private Sub Form_Load()
Dim MyFile, MyPath, MyName


MyPath = "c:\" ' Установим путь
MyName = Dir(MyPath, vbDirectory + vbHidden) ' Установим шаблон поиска
Do While MyName <> "" ' Запускаем цикл до скончания списка файлов

If MyName <> "." And MyName <> ".." Then
' Убедимся, что нам подсовывают именно папку
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Ура! Это папка! На печать ее.
End If
'А уж не скрытая ли она?
If (GetAttr(MyPath & MyName) And vbDirectory + vbHidden) = vbDirectory + vbHidden Then
MsgBox MyName, vbOKOnly 'Ура-а-а-а! Она скрытая!
End If
End If
MyName = Dir ' Смотрим след. по списку
Loop

End Sub

На ваши вопросы отвечал Евгений

Еще примерчик на тему сканирования папок. Пример использует библиотеку VBScript.dll

этот пример сканирует все папки и файлы на любой уровень вложенности
начиная с указанного пути. По умолчанию - "C:\"

На форму положить кнопку и TreeView

Dim FSys As New Scripting.FileSystemObject

Private Sub Command1_Click()
Dim folderSpec As String

Set FSys = CreateObject("Scripting.FileSystemObject")
'Путь, от куда начинать сканирование
folderSpec = "C:\"
folderSpec = UCase(folderSpec)
TreeView1.Nodes.Add , , folderSpec, folderSpec
Screen.MousePointer = vbHourglass
ScanFolder (folderSpec)
Screen.MousePointer = vbDefault
TreeView1.Nodes(1).Expanded = True
MsgBox "Список файлов создан"
End Sub

'Рекурсивное сканирование папок в подпапках
Sub ScanFolder(folderSpec As String)
Dim thisFolder As Folder
Dim sFolders As Folders
Dim fileItem As File, folderItem As Folder
Dim AllFiles As Files

Set thisFolder = FSys.GetFolder(folderSpec)
Set sFolders = thisFolder.SubFolders
Set AllFiles = thisFolder.Files
For Each folderItem In sFolders
TreeView1.Nodes.Add folderItem.ParentFolder.Path, tvwChild, folderItem.Path,
folderItem.Name
ScanFolder (folderItem.Path) 'непосредственно рекурсивный вызов
Next
For Each fileItem In AllFiles
TreeView1.Nodes.Add fileItem.ParentFolder.Path, tvwChild, fileItem.Path, fileItem.Name
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set FSys = Nothing
End Sub

С вами был AlexV

 

 

Home ] Up ] О группе ] Статьи ] Исходники ] Орфография ] Проекты ] Наша рассылка ]

Хостинг от uCoz