Anzeige
Archiv - Navigation
624to628
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
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ordner anlegen / suchen

Ordner anlegen / suchen
18.06.2005 14:57:49
Ronny
Hallo ans Forum,
ich möchte in einer Listbox alle vorhandenen Ornder im Unterornder "Daten" anzeigen, wie ist das möglich.
Weiterhin möchte ich Unterordner im Ordner "Daten" erstellen.
Wenn dieser Ordner vorhanden ist, soll mir das angeziegt werden und der Fehler übergangen werden.
Danke
Ronny

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ordner in Combo/Listbox auflisten
18.06.2005 15:46:23
GraFri
Hallo


      
' Verweis "Microsoft Shell Controls And Automation" muß unter
' Extras\Verweise...  gesetzt werden

Option Explicit
Private Sub UserForm_Initialize()
' Aufruf für Ordnersuche
  Call Ordner_auflisten("D:\")
End Sub
Sub Ordner_auflisten(startOrdner As String)
Dim dbOrdner()
Dim n               As Long
Dim objShell        As Shell
Dim objOrdner       As Folder
Dim objDatei        As FolderItem
Set objShell = New Shell
Set objOrdner = objShell.Namespace(startOrdner)
  n = 0
  
For Each objDatei In objOrdner.Items
    
If objDatei.Size = 0 Then       ' Ordner
      ReDim Preserve dbOrdner(0 To n)
      dbOrdner(n) = objDatei.Name
      n = n + 1
    
End If
  
Next
' Listbox für Ordnerausgabe
  cmbOrdner.List = dbOrdner
  cmbOrdner.ListIndex = 0
mfg, GraFri
Anzeige
Ordner anlegen/löschen
18.06.2005 15:50:44
GraFri
Hallo
Vielleicht hilft dir folgender Code weiter.


      
' Unter Extras\Verweise ... muß "Microsoft Scripting Runtime"
' aktiviert werden

Sub Ordner_löschen()
Call DeleteFolder("C:\Temp\Temp")
End Sub
Sub Ordner_erstellen()
Call CreateFolder("C:\Temp\Temp")
End Sub
Public Sub DeleteFolder(sFolder As String)
Dim fso     As New FileSystemObject
Dim Text    As String
Dim Antwort
ChDir "C:\"
Text = "Wollen Sie den Ordner  " & sFolder & vbCrLf & _
       "wirklich löschen?" & vbCrLf & vbCrLf & _
       "Alle darin befindlichen Dateien gehen verloren."
On Error GoTo DeleteFolder_ERROR
If fso.folderexists(sFolder) Then
Antwort = MsgBox(Text, vbCritical & vbOKOnly, "Ordner löschen")
    
If Antwort = 1 Then
        fso.DeleteFolder (sFolder)
    
Else
        MsgBox "Es wurde kein Ordner gelöscht."
    
End If
Else
    Err.Raise 10001, "Verzeichnis existiert nicht"
End If
Exit Sub
DeleteFolder_ERROR:
MsgBox Err.Description
End Sub
Sub CreateFolder(sFolder As String)
Dim fso     As New FileSystemObject
Dim Antwort
On Error GoTo ErrorFolder_ERROR
If fso.folderexists(sFolder) Then
Antwort = MsgBox("Ordner  " & sFolder & "  existiert schon. Wollen" & vbCrLf & _
                 "Sie diesen löschen und dann neu erstellen?" _
                 , vbYesNo + vbCritical, "Ordner löschen und neu anlegen")
    
If Antwort = 6 Then
        fso.DeleteFolder (sFolder)
        fso.CreateFolder (sFolder)
    
Else
        
Exit Sub
    
End If
Else
        fso.CreateFolder (sFolder)
End If
Exit Sub
ErrorFolder_ERROR:
MsgBox Err.Description
mfg, GraFri
Anzeige
Prüfen, ob Ordner vorhanden
18.06.2005 15:53:25
GraFri
Hallo
Vielleicht hilft dir folgender Code weiter.


      
' In ein Modul
' Hier alle benötigten API-Funktionen
Private Const MAX_PATH = 260
Private Const INVALID_HANDLE_VALUE = -1
Private Const FiLE_ATTRIBUTE_DIRECTORY = &H10
Private Type FileTime
  dwLowDateTime 
As Long
  dwHighDateTime 
As Long
End Type
Private Type WIN32_FIND_DATA
  dwFileAttributes 
As Long
  ftCreateionTime 
As FileTime
  ftLastAccessTime 
As FileTime
  ftLastWriteTime 
As FileTime
  nFileSizeHigh 
As Long
  nFileSizeLow 
As Long
  dwReserved0 
As Long
  dwReserved1 
As Long
  cFileName 
As String * MAX_PATH
  cAlternate 
As String * 14
End Type
Private Declare Function FindFirstFile Lib "kernel32" Alias _
  "FindFirstFileA" (
ByVal lpFileName As String, _
  lpFindFileData 
As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
  (
ByVal hWndFile As LongAs Long
'Die nachfolgende Funktion prüft, ob das angegebene Verzeichnis
'existiert und gibt im Erfolgsfall den Wert True zurück.
'Existiert das Verzeichnis nicht, wird False zurückgegeben.
Sub Ordner_vorhanden()
  
If OrdnerVorhanden("C:\TEMP") = True Then
    MsgBox "Ordner vorhanden"
  
Else
    MsgBox "Ordner nicht vorhanden"
  
End If
  
End Sub
Public Function OrdnerVorhanden(ByVal sFolder As StringAs Boolean
Dim hFile As Long
Dim WFD As WIN32_FIND_DATA
  
  
'Der Parameter sFolder enthält das zu prüfende Verzeichnis
  sFolder = Trim$(sFolder)
  
If Right$(sFolder, 1) = "\" Then
    sFolder = Left$(sFolder, Len(sFolder) - 1)
  
End If
  hFile = FindFirstFile(sFolder, WFD)
  OrdnerVorhanden = (hFile <> INVALID_HANDLE_VALUE) 
And _
    (WFD.dwFileAttributes 
And FiLE_ATTRIBUTE_DIRECTORY)
  
Call FindClose(hFile)
End Function
Bei weiteren Fragen einfach melden.
mfg, GraFri
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige