Hello Johnny,

On Wednesday 01 December 2010, 10:38, Johnny Rosenberg wrote:
> 2010/12/1 Johnny Rosenberg <gurus.knu...@gmail.com>:
> > If I know the name of a directory, let's say ~/MyImages, how can I
> > easily read the names of all the files in that directory? Let's say
> > that we will fill an array with all the file names.
> > 
> > I have searched a bit online, but so far I didn't find anything that I
> > understand… I'll continue searching, though.
> 
> He he he… I tried again to search for the answer and this time I found
> it almost immediately… At least I think I did:
> 
> http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide/Files_an
> d_Directories_(Runtime_Library)
> 
> Seems to be what I am looking for.
> 
> Other thoughts about this are still welcome, though.

I'd prefer using OOo API (not simply OOo Basic). This way you can then port 
your code to any supported language.
Try the following:

REM  *****  BASIC  *****
Option Explicit

Sub Main
        Dim oSFA as Object
        oSFA = CreateUnoService( "com.sun.star.ucb.SimpleFileAccess" )
        
        Dim sURL$
        sURL = getHomeDir()
        
        If NOT oSFA.exists( sURL) OR NOT oSFA.isFolder( sURL ) Then
                'some message
                Exit Sub
        End If
        
        Dim sHomeDirFileContents$()
        Dim sHomeDirFolderContents$()
        
        sHomeDirFileContents = oSFA.getFolderContents( sURL, false )    
        sHomeDirFolderContents = oSFA.getFolderContents( sURL, true )
        
        Dim oDoc as Object
        oDoc = StarDesktop.loadComponentFromURL(_
                                "private:factory/swriter", _
                                "_default", _
                                com.sun.star.frame.FrameSearchFlag.ALL, _
                                Array())
                
        Dim oCursor as Object
        oCursor = 
oDoc.getText().createTextCursorByRange(oDoc.getText().getStart())
        
        InsertContents( oCursor, sHomeDirFileContents, "Only files" )
        InsertContents( oCursor, sHomeDirFolderContents, "Files and folders" )
End Sub

Sub InsertContents( oCursor as Object, sContents(), sHeading$ )
        oCursor.ParaStyleName = "Heading 1"
        oCursor.getText().insertString( oCursor, sHeading, false )
        oCursor.getText().insertControlCharacter( oCursor, _
                        com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, 
false )
        oCursor.ParaStyleName = "Default"
        Dim n%
        For n = 0 To UBound(sContents)
                oCursor.getText().insertString( oCursor, sContents(n), false )
                oCursor.getText().insertControlCharacter( oCursor, _
                        com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, 
false )
        Next
End Sub

Function getHomeDir() as String
        Dim oPaths
        oPaths = CreateUnoService("com.sun.star.util.PathSubstitution")
        getHomeDir() = oPaths.getSubstituteVariableValue("$(home)")
End Function


Regards
-- 
Ariel Constenla-Haile
La Plata, Argentina

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to