Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA fso.deletefolder...

VBA fso.deletefolder...
23.01.2004 09:19:01
PeterB
Hallo phorum,
ich habe ein kleines problem: ich möchte (nach entscheidung über eine dateigröße) einen ordner auf meiner platte löschen: mit
fso.DeleteFolder (pProdName & "rimage\grund\" & Path & "\" & folder, True)
will ich ihn zwingen (fso...., TRUE) den ordner zu löschen. ohne klammern macht er mir das aber nicht in der laufzeit (er wirft fehler 70 - Read-Only, WARUM???)
^--- das war die erste frage ;-)
und mit klammern meckert er beim syntax-check, daß er ein = erwartet. das versteh ich nicht :-(
kann mir jemand helfen??
danke

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA fso.deletefolder...
23.01.2004 10:41:41
Dan
Hallo,
- die erste Frage : bei mir hat foldender Code funktioniert auch in der Luafzeit ...
- die zweite Frage : im Code
Option Explicit

Sub Test()
Dim Fso As FileSystemObject
Dim sFile As String
On Local Error GoTo ErrH
Set Fso = New FileSystemObject
sFile = "C:\Temp\aaa.xls"
Fso.DeleteFile FileSpec:=sFile, Force:=True
' oder ohne den Parameter Namen :
'Fso.DeleteFile sFile, True
' mit Klammern koennte man es schreiben, falls DeleteFile eine 

Function ware
' und einen Wert zuruckgeben hatte :
' vReturnedValue = Fso.DeleteFile(FileSpec:=sFile, Force:=True)
Exit Sub
ErrH:
MsgBox "Error " & Err.Number, vbCritical
End
End Sub

Anzeige
AW: VBA fso.deletefolder...
23.01.2004 11:29:40
PeterB
hallo dan,
danke für deine antwort.
ich habe aber einen ordner zu löschen. das file, das im ordner selbst liegt wird gelöscht, nur der ordner verbleibt in der struktur (wenn auch leer).
kannst du mir da weiterhelfen??
grüße
AW: VBA fso.deletefolder...
23.01.2004 11:43:57
Dan
Hallo,
Entschuldige, ich sollte vorsichtiger lessen. Ich habe File mit Folder verwechselt :-(
Folgender Code hat aber bei mir auch gut funktioniert. D.

Sub Test2()
Dim Fso As FileSystemObject
Dim sFolder As String
On Local Error GoTo ErrH
Set Fso = New FileSystemObject
sFolder = "C:\Temp\ProtectedToDelete"
Fso.DeleteFolder FolderSpec:=sFolder, Force:=True
Exit Sub
ErrH:
MsgBox "Error " & Err.Number, vbCritical
End
End Sub

Anzeige
AW: VBA fso.deletefolder...
23.01.2004 13:21:59
PeterB
Hi Dan,
kein prob ;-)
kann es sein, daß dein code so nicht geht? bei mir muß der : beim FolderSpec:= ... raus (bei Force natürlich auch)...
trotzdem geht das bei mir nicht! das ist doch zum Haare raufen!! kann es mit meinem OS (Win-XP Pro) zu tun haben??
ich hab auch schon die lese-rechte manuell geändert auf nicht R/W-geschützt (also da MUSS es eigentlich gehen...)
/ratlos\ peter
Bin weitergekommen, trotzdem problem
23.01.2004 13:42:29
PeterB
Hallo Dan,
ich bin etwas weitergekommen: er wirft nicht mehr 70, sondern 75 (path/file access error) als fehlermeldung, aber damit kann ich trotzdem nix anfangen :(
Anzeige
AW: Bin weitergekommen, trotzdem problem
23.01.2004 15:39:27
Dan
Hallo,
es ist aber merkwurdig. Hier ein Code wo ich die Fehler anders behandeln versucht habe. Versuch es und schreib mir ob es lauft oder wo liegt das Problem. Es fallt mir nur noch ein die Scripting Library zu ersetsen (erneuern)? D.

Sub Test3()
Dim oFso As Object
Dim oFld As Object
Dim sPath As String
Err.Clear
On Local Error Resume Next
Set oFso = VBA.CreateObject("Scripting.FileSystemObject")
If (oFso Is Nothing) Then MsgBox "FileSystemObject is Nothing.", vbCritical, "Error": End
sPath = "C:\Temp\ProtectedToDelete"
Set oFld = oFso.GetFolder(FolderPath:=sPath)
If (oFld Is Nothing) Then MsgBox "Folder is Nothing.", vbCritical, "Error": End
oFld.Delete
' End of Code
' Fehler die noch auftauchen koenneten :
If (Err.Number <> 0) Then
Dim vntErrNr As Variant
Dim vntErrDesc As Variant
' Fehler merken
vntErrNr = Err.Number
vntErrDesc = Err.Description
Err.Clear
' Permission denied, Folder ist nur "zum lesen"
' oder ist gerade benutzt
If (vntErrNr = 70) Then
' wir versuchen es mit DeleteFolder Methode
oFso.DeleteFolder FolderSpec:=sPath, Force:=True
' if wieder Error : es hat keinen Sinn es weiter zu versuchen, man muss den Folder frei machen
' z.B. einen File schliessen, der sich in deisem Folder befindet und geoffnet ist usw.
If (Err.Number <> 0 And Err.Number = vntErrNr) Then
MsgBox "Es ist wieder der Fehler " & vntErrNr & " aufgetaucht." & vbCrLf & _
vntErrDesc, vbCritical, "Fatal Error": End
ElseIf (Err.Number <> 0) Then
MsgBox "Runtime. Error Nr. " & vntErrNr & " occured " & vbCrLf & _
vntErrDesc, vbCritical, "Fatal Error": End
End If
Else
MsgBox "Runtime. Error Nr. " & vntErrNr & " occured " & vbCrLf & _
vntErrDesc, vbCritical, "Fatal Error": End
End If
End If
End Sub

Anzeige
AW: Bin weitergekommen, trotzdem problem
23.01.2004 15:49:39
Dan
Ich gehe jetzt nach Hause :-) Grusse Dan.
DDMAIL@seznam.cz
AW: Bin weitergekommen, trotzdem problem
26.01.2004 14:56:06
peterb
hi dan,
vielen dank für deine hilfe, aber ich glaube, es liegt an meiner platte / meinem OS:
scheinbar geht es auf anderen PC's, deswegen mach ich mir bei mir keine sorgen mehr.
tschö peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige