This article demontrates how to process/read individual files and directories in Unix file system using Basic and LibreOffice Calc Macro and put the file names/directory names in LibreOffice Calc cells.
For LibreOffice automation, it is necessary to know file system and directory processings. This tutorial is based on Unix file system which is different than Windoze.
In this article, the macro would read the contents of an entire directory and find out the files and directories and list them in Calc cells. Say, the file system structure is like this in a typical Ubuntu system in the path /usr/include
There are lots of Directories and Files. We would like to list down entire contents inside Calc cells.
Basic provides function “Dir” which can be used to read the contents of a Directory.
Syntax
Dir (path, attributes) As String
First argument of the Dir function is the path string to be read. Second argument tells Dir function which type of elements in that path to be returned. Pass on “0” for file and “16” for Directories for second argument. Both the arguments are optional.
Once the first Dir call is successful, call the function again without argument inside a loop to get the same items from the function resulting listing of entire Directory contents.
Complete Macro
To run, create a new Calc file and Copy and paste this entire code block below in Macro Editor in LibreOffice and run.
Sub list_files()
Dim i, strFile
path ="/usr/include/"
strFile = Dir(path,0)
i = 1
while strFile <> ""
my_cell = ThisComponent.Sheets(0).getCellbyPosition(1,i)
my_cell.String = strFile
strFile = Dir ' returns next entry
i = i + 1
wend
End Sub
Sub list_directory()
Dim i, strDir
path ="/usr/include/"
strDir = Dir(path, 16)
i = 1
while strDir <> ""
my_cell = ThisComponent.Sheets(0).getCellbyPosition(2,i)
my_cell.String = strDir
strDir = Dir ' returns next entry
i = i + 1
wend
End Sub
Output
After run, the contents of /usr/include would be shown in Calc. First column would contain the Files and second column would contain the Directories.

Function References – Used in this article
Dir (path, attributes)
path: optional
attributes: optional
Return Value: String
List of attribute types:
Attribute | Description |
0 | Normal (Default) |
1 | Read-only |
2 | Hidden |
4 | System file |
8 | Volume label |
16 | Directory or folder |
64 | File name is an alias |
Looking for Something Else?
If you are looking for something else in LibreOffice macro tutorials, Or, wants to learn more about it, please follow below link for complete Macro Tutorials Index:
LibreOffice Macro Tutorial Index
We bring the latest tech, software news and stuff that matters. Stay in touch via Telegram, Twitter, YouTube, and Facebook and never miss an update!
