Как удалить папку выбранную в DirListBox-е

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Stasjan
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 02.06.2004 (Ср) 9:46

Как удалить папку выбранную в DirListBox-е

Сообщение Stasjan » 02.06.2004 (Ср) 10:06

Помогите :(
Пробовал использовать код:
----------------------------------------
Private Sub Command9_Click()

Dim myFSO As Object
Dim myFLDR As Folder
Dim dirName1, resp

Set myFSO = CreateObject("Scripting.FileSystemObject")

dirName1 = Dir1.List(Dir1.ListIndex) '

resp = MsgBox(" Удалить" & dirName1, vbYesNo + vbExclamation, _
"Подтверждение удаления")

If resp = vbYes Then

Set myFLDR = myFSO.DeleteFolder(dirName1)

End If
End Sub
------------------------------
Выдает ошибку :cry:
Подскажите что не так, и можно решить этот вопрос как нибудь по другому. (Нужно что бы удалялись как пустые папки так и папки с файлами). Заранее благодарен
:lol:

Stasjan
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 02.06.2004 (Ср) 9:46

Сообщение Stasjan » 02.06.2004 (Ср) 10:57

Решение найдено! :P
-----------------------------------------------------------
Private Sub Command_Click()

Dim myFSO As Object
'Dim myFLDR As Folder
Dim dirName2, resp

Set myFSO = CreateObject("Scripting.FileSystemObject")

dirName2 = Dir2.List(Dir2.ListIndex)

resp = MsgBox(" Удалить " & dirName2, vbYesNo + vbExclamation, _
"Подтверждение удаления")

If resp = vbYes Then

myFSO.DeleteFolder (dirName2)

Dir1.Refresh
Dir2.Refresh
End If

End Sub

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 02.06.2004 (Ср) 11:07

Код: Выделить всё
Option Explicit

Private Sub Command1_Click()
Dim myFSO As Object
Dim dirName1, resp
Set myFSO = CreateObject("Scripting.FileSystemObject")

dirName1 = Dir1.List(Dir1.ListIndex) '

resp = MsgBox(" Удалить" & dirName1, vbYesNo + vbExclamation, _
"Подтверждение удаления")

If resp = vbYes Then
    myFSO.DeleteFolder (dirName1)
End If

Dir1.Refresh

End Sub


При удалении не нужно задавать Set для удаляемого элемента. И такого объекта как Folder в VB, имхо, не существует.

Stasjan
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 02.06.2004 (Ср) 9:46

Сообщение Stasjan » 02.06.2004 (Ср) 11:19

Первоначальный текст (работа с FSO) я взял на сайте(каком не помню :) ), там было написанно именно так.

А насчет существования Folder? ведь при описании myFLDR as ( Folder - подставляется автоматически) или я нетак что-то понял.
А за ответ спасибо. :wink:

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 02.06.2004 (Ср) 11:55

У меня не подставился. Может быть потому что я не делал ссылку в проекте на библиотеку объекта файловой системы (Microsoft Scripting Runtime (scrrun.dll))?
Точно. Из-за этого. :oops:

Если ставишь ссылку на эту библиотеку, тогда нужно просто указать
Dim myFSO as New FileSystemObject
и Folder будет подставляться.

и не нужно писать в коде
Set myFSO=CreateObject("Scripting.FileSystemObject") - лишнее объявление.

Если же объявлять через Set, тогда не нужно в ссылках проекта указывать библиотеку.
В общем или одно или другое.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList