Avatar billede kisbye Nybegynder
15. oktober 2001 - 13:54 Der er 6 kommentarer og
2 løsninger

Slette undermapper

Jeg har lavet et program der sletter indholdet af Windows Temp.
Men den sletter ikke undermapper, hvordan gør jeg det?.

V.H. Kisbye
Avatar billede clausjacobsen Nybegynder
15. oktober 2001 - 14:09 #1
Prøv denne. Hust at tilføj Reference til Microsoft Scripting Runtime.

Option Explicit
Dim objFSO As Scripting.FileSystemObject

Private Sub Command1_Click()
  Set objFSO = New Scripting.FileSystemObject
  objFSO.DeleteFolder (\"C:\\Windows\\temp\\test\"), True
  Set objFSO = Nothing
End Sub
Avatar billede kisbye Nybegynder
15. oktober 2001 - 14:30 #2
Jeg prøver ad.

jeg går ud fra der er noget der hedder:

objFSO.GetFolders(\"Var\")

så jeg kan finde ud af hvad vinduer der ligger.

Avatar billede joern Nybegynder
15. oktober 2001 - 20:17 #3
Hej.

Jeg har lige afprøvet en god gammel DOS-kommando:  deltree

Private Sub Command1_Click()
  x = Shell(\"deltree /y f:\\temp\\*.*\")
End Sub

Den fungerer på min win98 PC med VB5, bruger du Millennium eller 2000 virker den ret sikkert ikke!

P.S. jeg ville ikke slette min C:\\temp så jeg lavede en kopi på F.

M.v.h.  Jørn
Avatar billede joern Nybegynder
15. oktober 2001 - 20:21 #4
Ups.  Vil man undgå et \"udført DOS\" minimeret vindue, skal der lige sættes en parameter.

Private Sub Command1_Click()
    x = Shell(\"deltree /y f:\\temp\\*.*\",0)
nd Sub

Og så skal der stå i din DOS-indstilling at vinduer lukkes ved afslutning.

M.v.h. Jørn
Avatar billede picard Nybegynder
15. oktober 2001 - 22:10 #5
Følgende sletter et directory og dets subdirectories

Private Declare Function SHFileOperation Lib \"shell32.dll\" _
Alias \"SHFileOperationA\" (lpFileOp As SHFILEOPSTRUCT) As Long

Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type

Private Const FO_DELETE = &H3
Private Const FOF_SILENT = &H4
Private Const FOF_RENAMEONCOLLISION = &H8
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_SIMPLEPROGRESS = &H100
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_FILESONLY = &H80&

Public Sub SletFiler(sPath As String)
Dim SHFileOp As SHFILEOPSTRUCT
sPath = sPath & Chr$(0) & Chr$(0)

\'Initialisering af options
With SHFileOp
  .wFunc = FO_DELETE
  .pFrom = sPath
  .fFlags = FOF_FILESONLY Or _
  FOF_SILENT Or _
  FOF_NOCONFIRMATION Or _
  FOF_ALLOWUNDO
End With

\'slet biblioteker og underbiblioteker
Call SHFileOperation(SHFileOp)

end sub

private sub command1_Click()
Sletfiler(\"c:\\TEST\\\")
end sub


mvh.

Christian
Avatar billede kisbye Nybegynder
06. november 2001 - 14:56 #6
Jeg har ikke lige tid til afprøve det lige nu.
så jeg fordeler pointne mellem jer.

Picard> Hvis du vil have point, så svar.

Avatar billede kisbye Nybegynder
06. november 2001 - 14:58 #7
Jeg har ikke tid til at afprøve det lige nu, så jeg fordeler bare pointne imellem jer.

Picard> du har ikke afgivet noget svar.

Tak for hjælpen alle sammen.
Avatar billede kisbye Nybegynder
06. november 2001 - 15:00 #8
Picard> dine points er på:
http://www.eksperten.dk/spm/130317
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester