' СОРС ЗА ФОРМАТА

'При кликане на бутона СЪЗДАЙ ДИРЕКТОРИЯ

Private Sub Command1_Click()

    KratkoIme = InputBox("Въведете име за директорията, която искате да създадете", "Пример за създаване на директория") 'Въвеждаме краткото име на директорията

    If KratkoIme <> "" Then ' Ако въведеното име не празен стринг

        FullName = BrowseForFolder & KratkoIme ' Създаваме пълното име, чрез отваряне на диалогова форма за избор на мястото на новата директория

        On Error GoTo dolu ' Манипулатор на грешка, възможно е вече да има директория с такова име

        MkDir FullName ' РЕАЛНО СЪЗДАВАНЕ НА НОВАТА ДИРЕКТОРИЯ

        MsgBox "Създадена е директория " & FullName, vbInformation, "" ' Съобщение за успешна операция

    End If

Exit Sub

dolu:     MsgBox "Директория " & FullName & " вече съществува", vbInformation, "Отказана операция!" ' ' Съобщение за отказана операция

End Sub

 

' При кликане на бутона ИЗТРИЙ ДИРЕКТОРИЯ

Private Sub Command2_Click()

    FullNameDel = BrowseForFolder ' Чрез диалоговата форма от модула избираме директорията за изтриване

    FullNameDel = Left(FullNameDel, Len(FullNameDel) - 1) ' Махаме излишната последна наклонена черта

    Set fso = CreateObject("Scripting.FileSystemObject") ' Създаваме скриптов обект за манипулация на системни обекти

    If Len(FullNameDel) > 0 Then

    f1 = fso.FolderExists(FullNameDel) ' Проверка за съществуване на посочената директория - връща TRUE илиFALSE

       If f1 = False Then ' Ако директорията не съществува

            MsgBox "Няма такава директория!", , "" ' Показваме съобщение

        Else ' Ако директорията съществува

        On Error GoTo dolu: ' Манипулатор на грешка

            fso.DeleteFolder (FullNameDel) ' РЕАЛНО ИЗТРИВАНЕ НА ЦЯЛАТА ДИРЕКТОРИЯ СЪС ВСИЧКИ ПАПКИ,ПОДПАПКИ И ФАЙЛОВЕ

            MsgBox "Директорията е изтрита!", , "" ' Съобщение за успешна операция

        End If

    End If

Exit Sub

dolu:

MsgBox "Грешка - възможно е да има отворен или стартиран файл!", , "" ' Съобщение при неуспешна операция

End Sub

 

            '  СОРС ЗА МОДУЛА IzborDir

Private Type BrowseInfo

    hWndOwner As Long

    pIDLRoot As Long

    pszDisplayName As Long

    lpszTitle As String

    ulFlags As Long

    lpfnCallback As Long

    lParam As Long

    iImage As Long

End Type

Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Private Declare Function GetActiveWindow Lib "user32" () As Long

 

 ' Функция за избор на директория

Public Function BrowseForFolder(Optional sCaption As String = "Select a folder", Optional sDefault As String) As String

    Const BIF_RETURNONLYFSDIRS = 1

    Const MAX_PATH = 260

    Dim lPos As Integer, lpIDList As Long, lResult As Long

    Dim sPath As String, tBrowse As BrowseInfo

 

    With tBrowse

        .hWndOwner = GetActiveWindow

        .lpszTitle = sCaption

        .ulFlags = BIF_RETURNONLYFSDIRS     '

    End With

 

    lpIDList = SHBrowseForFolder(tBrowse)

    If lpIDList Then

        sPath = String$(MAX_PATH, 0)

        SHGetPathFromIDList lpIDList, sPath

        CoTaskMemFree lpIDList

        lPos = InStr(sPath, vbNullChar)

        If lPos Then

            BrowseForFolder = Left$(sPath, lPos - 1)

            If Right$(BrowseForFolder, 1) <> "\" Then

                BrowseForFolder = BrowseForFolder & "\"

            End If

        End If

    Else

        BrowseForFolder = sDefault

    End If

End Function