Перейти к содержимому
  • 0
Forsash3451k

Filesystem массив с содержимым директории

Вопрос

Здравствуйте, возникла проблема с api openos. Я хочу создать массив, в котором будет содержаться файлы/директории по определённому пути. Я это хотел реализовать через команду Filesystem.list(путь к директории) но вместо это мне возвращают имя функции, с которой я не знаю что делать. Помогите пожалуйста

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

1 час назад, Forsash3451k сказал:

Здравствуйте, возникла проблема с api openos.

Здавствуйте.
Вообще это Filesystem API. Не суть.

Что у меня получилось по запросу:

1 час назад, Forsash3451k сказал:

Массив, в котором будет содержаться файлы/директории

local fs = require('filesystem')
...
local files = fs.list('/') 
local idk = {} 
while true do 
  toadd = nil 
  toadd = files() 
  if toadd == nil then break end 
  table.insert(idk,toadd) 
end
...

В fs.list меняем путь, на желаемый.

idk Это тот список в который вы будете складывать ваши папки, на пример.

toadd = nil

toadd = files Это костыль для того что-бы если файлов больше не осталось, наше значение "добавить" осталось пустым, далее проверяем пустое ли оно (закончились папки\файлы) если да то цикл в ананас если не то добавляем наше чудо название чего-либо в список.
Данный код показывает содержимое только этой папки, без вложенных в него других папок.

Теперь про fs.list:

Оно возвращает функцию, эта функция с каждым вызовам будет показывать следующий элемент, пример:

a = fs.list('/home')

print(a())

print(a())

>> "test.lua"

>> "testdir/"
Если-же элементы кончились то оно ничего не возвращает, переменная не изменяет своё значение на nil, вроде.

Удачи1!1 :3

Изменено пользователем Oleshe
1. Не нужная одинокая переменная. 2. Поздаровался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
28 минут назад, Forsash3451k сказал:

вместо это мне возвращают имя функции, с которой я не знаю что делать

А кто возвращает имя функции? И что это за имя?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
23 минуты назад, Oleshe сказал:

Вообще это Filesystem API.

Ага, вот в чём дело.

 

В общем, есть компонент filesystem, и его метод list действительно возвращает массив.

А есть библиотека filesystem, и её метод list возвращает итератор.

И если требуется на основе этого итератора сформировать массив, то без костылей это делается, например, так:

files={}
for file in filesystem.list("/") do
  files[#files+1]=file
end

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Большое спасибо за помощь с файловой системой. Я просто не правильно всё это время использовал команду filesystem.list из-за чего функция не работала. Ещё раз большое спасибо за объяснение))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...