Seite 1 von 1
Anzahl der Dateien in Ordner ermitteln
Verfasst: Mi, 11.04.2012 11:07
von TorSo
Erstmal ein freundliches Hallo,
nach einigen halbherzigen Versuchen auf OO umzusteigen hab ich mich nun endgültig dazu durchgerungen.
Habe hier bei Euch auch schon diverse Lösungen für einen Umstieg von MSO gefunden.
Was mir noch ( u.a. ) noch fehlt, ist eine Möglichkeit, die Anzahl von Dateien in einem Ordner inkl. der Unterordner zu ermitteln.
Auch nach Studium diverser hier empfohlener Literatur und längerer Suche im Forum habe ich dazu keine Lösung oder Ansätze gefunden, welche für mich,
sicherlich auch in Ermangelung noch fehlender OOBasic-Kenntnisse, nachvollziehbar und im Idealfall für meine Bedürfnisse anzupassen sind.
Ich würde mich freuen, wenn ich hier Hilfe erhalten würde. Es muss nicht gleich eine Komplettlösung sein. Auch für einen Denkanstoss wäre ich dankbar, denn lernen will ich ja auch noch etwas.
Sage schonmal danke
Gruß TorSo
Re: Anzahl der Dateien in Ordner ermitteln
Verfasst: Mi, 11.04.2012 12:06
von Karolus
Hallo
Unter Linux in einem Terminal :
ls '/pfad/zum/verzeichnis | wc -l
Unter Windows gibts zumindest den Befehl
dir der die Dateien und Verzeichnise im Pfad ausgibt
Falls du unbedingt per Basic lösen willst ...
http://www.starbasicfaq.de/Wiekannmandi ... ddenU.html
Karo
Re: Anzahl der Dateien in Ordner ermitteln
Verfasst: Mi, 11.04.2012 12:30
von Stephan
Auch nach Studium diverser hier empfohlener Literatur und längerer Suche im Forum habe ich dazu keine Lösung oder Ansätze gefunden, welche für mich, sicherlich auch in Ermangelung noch fehlender OOBasic-Kenntnisse, nachvollziehbar und im Idealfall für meine Bedürfnisse anzupassen sind.
Ach, und in VBA konntest Du das natürlich alles und in StarBasic ist alles natürlich völlig anders ... oder mangelt es vielleicht doch nur an Kenntnissen zu VBA...
Bei mir jedenfalls geht in VBA und(!) Starbasic:
Code: Alles auswählen
Sub dateien()
X = 0
tmp = Dir("D:\*.*")
Do While tmp <> ""
tmp = Dir
X = X + 1
Loop
MsgBox "Anzahl der Dateien: " & X
End Sub
Gruß
Stephan
Re: Anzahl der Dateien in Ordner ermitteln
Verfasst: Mi, 11.04.2012 12:37
von TorSo
Danke erstmal für Eure Antworten,
zu meiner Verteidigung möchte ich nur sagen, dass auch meine VBA-Kenntnisse nicht berauschend sind. Stephan´s Lösung beispielsweise habe ich in "meinen" Makros nicht gefunden. Gefällt mir aber. Ist super kurz.
Werd mir beide Varianten ansehen und mich dann zurückmelden.
Vielen Dank nochmals
Re: Anzahl der Dateien in Ordner ermitteln
Verfasst: Mi, 11.04.2012 13:56
von TorSo
Zum Berichten zurück.
Karo´s Empfehlung meldet mir immer einen Laufzeitfehler. Habe es im Einzelschritt laufen lassen und dabei festgestellt, dass immer nur der erste Unterordner ermittelt wird. Einige Dutzend mal. Dann kommt irgendwann die Fehlermeldung, dass es nicht genügend Stapelspeicher gäbe.
Wenn ich es richtig verstanden habe, sollen doch die enthaltenen Dateien und Ordner aufgelistet werden und deren Anzahl dann den Rückgabewert darstellen.
Stephan´s "Quickie" macht letztendlich was er soll.
Jedoch hätte ich noch die Frage, wie ich die Unterordner mit einbeziehe. In VBA habe ich es mit Application.FileSearch und .SearchSubFolders = True realisiert.
Also anderer Weg als der hier aufgezeigte. Und mit dir kann ich,soweit ich grad gelernt habe, die Unterverzeichnisse nicht auslesen.
Gruß TorSo
Re: Anzahl der Dateien in Ordner ermitteln
Verfasst: Fr, 13.04.2012 14:13
von TorSo
Hallo zusammen,
zunächst möchte ich Euch mitteilen, dass ich durch weiteres Suchen hier im Forum eine Lösung für mein "Problem" gefunden habe, basierend auf der Anregung von Karolus.
Nun habe ich aber eine Frage. Auch auf die Gefahr hin, dass Ihr mich dafür steinigen wollt. Ich bräuchte die Ausgabe des Ergebnisses in einer Zelle, sagen wir einfach "Tabelle1" "Zelle A1", und nicht in der MsgBox.
Das folgende Makro ist von ykcim
Code: Alles auswählen
sub testdir
dim liste(10000) as string
m=getdirs(liste(),0,"c:\programme")
For i=0 to m-1
' msgbox liste(i)
next i
msgbox m
end sub
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
Vielleicht darf ich nochmal auf Eure Hilfe bauen.
Vielen Dank
Gruß TorSo
Re: Anzahl der Dateien in Ordner ermitteln
Verfasst: Fr, 13.04.2012 14:40
von theindless
Hallo TorSo,
also ich bin auch Anfänger und der Code ist bestimmt nicht ausgefeilt, aber er funktioniert:
Ersetze das
MsgBox m
durch
Code: Alles auswählen
oDoc = ThisComponent
oSheet = oDoc.sheets(0)
oZelle = oSheet.getCellbyPosition(0,0)
oZelle.Value = m
Bei mir funktioniert der Code... ist getestet.
Re: Anzahl der Dateien in Ordner ermitteln
Verfasst: Fr, 13.04.2012 14:44
von TorSo
Vielen Dank, theindless,
Funktioniert auch bei mir super.