39 lines
1.5 KiB
GDScript
39 lines
1.5 KiB
GDScript
extends table
|
|
|
|
|
|
var FILES_EXCLUDE_NAMES = ['.', '..']
|
|
var FILES_HEADERS_TEXT = ['Имя файла', 'Размер', 'Дата' ]
|
|
var FILES_COLUMN_WIDTHS = [ 400, 150, 250 ]
|
|
var FILES_HEADERS_ALIGNMENT = [ HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER ]
|
|
var FILES_ROWS_ALIGNMENT = [ HORIZONTAL_ALIGNMENT_LEFT, HORIZONTAL_ALIGNMENT_RIGHT, HORIZONTAL_ALIGNMENT_CENTER ]
|
|
|
|
|
|
func fill_files_table(tbl: table, folder: String, rows_types: Array):
|
|
var dir: = DirAccess.open(folder)
|
|
if dir == null:
|
|
return
|
|
var files: = []
|
|
var exclude_names: = ['.', '..']
|
|
dir.list_dir_begin() # TODOGODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547
|
|
while true:
|
|
var file: = dir.get_next()
|
|
if file == '':
|
|
break
|
|
if file in exclude_names:
|
|
continue
|
|
var file_name = folder + '/' + file
|
|
var fd = FileAccess.open(file_name, FileAccess.READ)
|
|
if not fd:
|
|
continue
|
|
var glob_path = ProjectSettings.globalize_path(file_name)
|
|
var sz = fd.get_length()
|
|
var ut = fd.get_modified_time(file_name)
|
|
fd.close()
|
|
var mt = Time.get_datetime_dict_from_unix_time(ut)
|
|
var file_row = [file, '%d' % sz, '%d-%02d-%02d %02d:%02d' % [mt.year, mt.month, mt.day, mt.hour, mt.minute]]
|
|
tbl.add_row(rows_types)
|
|
var i_row = tbl.get_rows_count() - 1
|
|
tbl.set_row_text(i_row, file_row)
|
|
tbl.set_node_meta(0, i_row, 'file_path', glob_path)
|
|
dir.list_dir_end()
|