Das Ergebnis: Ich möchte eine Liste mit mehreren Spalten füllen. Dabei soll in Spalte A: Der Pfad, Spalte B: Der Dateiname und Spalte C: Der DateiTyp / Endung stehen.
Das Problem: Ich komme mit dem Dir - Befehl nicht weiter, weil ich auch Unterordner einschließen will. Wenn ich Unterordner einschließe, schaffe ich die saubere Trennung zwischen Ordner / Pfad, Datei und Endung nicht mehr.
Ich weiß, dass diese Frage schon ab und zu angeschnitten wurde, aber die Themen sind leider alle steinalt. Durch die hier empfohlene Literatur und dieses Forum bin ich auch schon etwas näher an der Lösung:
Code: Alles auswählen
sub testdir
' ------------------ > Vars / Objekte :
oSheet = thisComponent.Sheets.getByName("Tabelle1")
oFolderPicker = createUnoService("com.sun.star.ui.dialogs.FolderPicker")
dim iZeile as integer
dim liste(10000) as string
dim origin as string
' ------------------ > Start :
oFolderPicker.execute
origin = oFolderPicker.directory
iZeile = 2
m = getdirs(liste(),0, origin)
For i=0 to m-1
TeilStrings() = Split(liste (i), ".")
' oSheet.getCellbyPosition(0,iZeile).string = Trim(TeilStrings(0))
oSheet.getCellbyPosition(2,iZeile).string = Trim(TeilStrings(1))
liste(i) = Left(liste(i), (Len(liste(i))) - 4)
TeilStrings2() = Split(liste (i), origin & "/")
oSheet.getCellbyPosition(0,iZeile).string = Trim(TeilStrings2(0))
oSheet.getCellbyPosition(1,iZeile).string = Trim(TeilStrings2(1))
iZeile = iZeile + 1
next i
End sub
' ------------------ > Funktion :
function getdirs( liste(),z, folder) as integer
sFolderUrl = ConvertToUrl( Folder )
oSimpleFileAccess = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
aFolders = oSimpleFileAccess.getFolderContents( sFolderUrl,true )
For i = LBound( aFolders ) To UBound( aFolders )
sFile = aFolders( i )
If oSimpleFileAccess.isFolder( sFile ) Then
getdirs( liste(),z, sFile)
Else
liste(z) = sfile
z = z + 1
end if
next i
getdirs = z
end function
Betriebssystem: Windows 7, OOvers. 3.4
Code etwas aufgeräumt.
[/edit]