blob: 502f189fd56fdd193607d6429458e07bffaf8a01 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
local GFile = require("lgi").Gio.File
---@class QuarrelFs
local qfs = {}
--- Read a file with the specified format (or "a") and close the file
---@param path string
---@param format openmode
---@return any
function qfs.read(path, format)
local f = assert(io.open(path, "r"))
local c = f:read(format or "a")
f:close()
return c
end
--- List files in a directory
---@param path string
---@param absolute boolean?
---@return table
function qfs.ls_files(path, absolute)
local files = GFile.new_for_path(path):enumerate_children("standard::*", 0)
local files_filtered = {}
if not files then
return {}
end
for file in
function()
return files:next_file()
end
do
if file:get_file_type() == "REGULAR" then
local file_name = file:get_display_name()
file_name = absolute and (path:gsub("[/]*$", "") .. "/" .. file_name) or file_name
table.insert(files_filtered, file_name)
end
end
return files_filtered
end
return qfs
|