DirListBox + Neuer Ordner

maho15

Erfahrenes Mitglied
Hi,

gerade bei so installationen, gibt es manchmal so eine DirListBox und einen Button um einen Neuen Ordner zu erstellen. Wenn man auf den Button klickt, wird direkt in der DirListBox ein neuer Ordner erstellt und man kann, seinen namen bestimmen.

wie geht das?
 

Daniel Toplak

Erfahrenes Mitglied
Dazu machst du einen Button. Beim Klick auf den Button, kannst du zum Beispiel eine Input Box aufgehen lassen. Da wird dann der Ordnername eingetragen. Dann kannst du mit Hilfe des FileSystemObjects und der Methode CreateFolder einen Ordner erstellen. Du musst natürlich immer wissen, wo du dich befindest also das was dir die DirListBox zurückgibt.
Hier mal ein Beispiel:
Code:
Private Sub Command1_Click()
    Dim newFolder As String
    Dim fs
    newFolder = InputBox("Bitte geben Sie den neuen Ordner an", "Neuer Ordner")
    
    If newFolder <> "" Then
        Set fs = CreateObject("Scripting.FileSystemObject")
        fs.CreateFolder (Dir1.Path & "\" & newFolder)
        Dir1.Path = Dir1.Path & "\" & newFolder
    End If

End Sub

Gruss Homer
 

Dario Linsky

Erfahrenes Mitglied
alternativ dazu kannst du natürlich auch ein normales treeview verwenden. (die dirlistbox ist auch eigentlich nichts anderes, nur mit ein paar zusätzlichen funktionen).
in einem normalen treeview musst du allerdings selber die verzeichnisse auflisten und aktualisieren. dafür kannst du aber mit der eigenschaft "labeledit" einträge bearbeiten.
 

Dario Linsky

Erfahrenes Mitglied
das filesystemobject findest du in der scripting runtime von visual basic.
im menü unter projekte/verweise/microsoft scripting runtime.
 

maho15

Erfahrenes Mitglied
danke, aber warum so kompliziert?

Private Sub Command1_Click()
Dim newFolder As String
newFolder = InputBox("Bitte geben Sie den neuen Ordner an", "Neuer Ordner")

If newFolder <> "" Then
MkDir (Dir1.Path & "\" & newFolder)
Dir1.Path = Dir1.Path & "\" & newFolder
End If
End Sub
 

Dario Linsky

Erfahrenes Mitglied
danke, aber warum so kompliziert?

weil man durch das filesystemobject ab visual basic 6 auch mit objektorientierung zugriff auf das dateisystem nehmen kann. die üblichen funktionen sind alle rein prozedural. mit dem filesystemobject hast du - wie der name schon sagt - das dateisystem als objekt und damit alle wichtigen funktionen, eigenschaften, methoden (und ereignisse ?) gekapselt.