Hallo.
Ich hatte in meinem Programm folgenden Code um leere Ordner zu löschen.
Da ich aber nun alles andere schon von FSO auf API umgschrieben habe bräuchte ich hilfe folgenden code in API zu realisieren,
danke mfg joe
Sub DeleteEmptyFolder(ScanPfad)
Set MyFSO = CreateObject(„Scripting.FileSystemObject“)
Set PathObject = MyFSO.GetFolder(ScanPfad)
Set SubFolders = PathObject.SubFolders
For Each SubFoldersNow In SubFolders
Set FileObject = SubFoldersNow.Files
Set SubSubFolders = SubFoldersNow.SubFolders
fc = FileObject.Count
pc = SubSubFolders.Count
On Error GoTo errordel
If fc = 0 And pc = 0 Then
SubFoldersNow.Delete
Else
DeleteEmptyFolder (SubFoldersNow.ParentFolder + „“ + SubFoldersNow.Name)
End If
Next
Set SubFolders = PathObject.SubFolders
For Each SubFoldersNow In SubFolders
Set FileObject = SubFoldersNow.Files
Set SubSubFolders = SubFoldersNow.SubFolders
fc = FileObject.Count
pc = SubSubFolders.Count
If fc = 0 And pc = 0 Then
SubFoldersNow.Delete
End If
Next
End Sub
Hi Joe,
Du rufst die Funktion GetAllFiles doch mit …
Max = GetAllFiles(LCase(Text1.Text), Such, Files, \_
(Check1.Value = Checked))
… auf. Max ist die Anzahl der gefundenen Einträge. Wenn Max=0 ist, ist das Verzeichnis leer und Du kannst es einfach mit RMDir(Pfad) löschen.
Gruß, Rainer
hi, Gibt es noch eine andere möglichkeit ?
das muss ja auch wieder rekursiv passieren da MAX ja den pfad komplett durchsucht. also würde in der text1.text C:\windows stehen würde mir max 2000 ausgeben obwohl c:\windows\temp leer ist
ich probiere mal rum
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Joe,
hi, Gibt es noch eine andere möglichkeit ?
Ich fürchte nein.
das muss ja auch wieder rekursiv passieren da MAX ja den pfad
komplett durchsucht.
Hmmm, habe ich mich versehen?
also würde in der text1.text C:\windows
stehen würde mir max 2000 ausgeben obwohl c:\windows\temp leer
ist
Dann mußt Du wohl weiter 'rein, Du mußt für den Ordner ermitteln, ob er leer ist. Daß das nicht leicht wird, weiß ich. Es gäbe einen ‚Trick‘, nämlich die Steuerlemente ‚Filelist‘ und ‚Dir‘, aber die arbeiten mit ‚Dir$‘ und sind so langsam wie FSO, dann ist der Geschwindigkeitsgewinn wieder hinüber. Das wird Arbeit machen …
Gruß, Rainer