Пакет предоставляет реализацию интерфейса github.com/D3rus/go-library/file/Collection
которая находится в файле files.go.
Так же пакет предоставляет несколько оберток:
- TarGZ - если файлы находятся в архивах
tar.gz
, при вызове методаNext
архив будет распакован, метод конструкторNewTarGZ(collection file.Collection, directory string)
, directory - путь до директории, в которую будут распаковываться архивы; - ZIP - если файлы находятся в архивах
zip
, при вызове методаNext
архив будет распакован, метод конструкторNewZIP(collection file.Collection, directory string)
, directory - путь до директории, в которую будут распаковываться архивы; - Context - отслеживает закрытие контекста, если контекст закрыт, при вызове метода
Next
вернет ошибкуio.EOF
, вне зависимости от кол. оставшихся файлов, метод конструкторNewContext(collection file.Collection, ctx context.Context)
.
Обертки реализованы для использования их с интерфейсом
github.com/D3rus/go-library/file/Collection
, что позволяет использовать их отдельно.
Пакет предоставляет метод New(directory string, namer file.Namer, options ...file.CollectionOption) (file.Collection, error)
,
для легкого получения готового объекта коллекции файлов, directory
- путь до директории в которой расположены файлы,
options
- является опциональным аргументом, пакет предоставляет следующие методы опций:
- WithArchiveTarGZ - добавляет обертку TarGZ;
- WithArchiveZIP - добавляет обертку ZIP;
- WithArchive - добавляет обертку TarGZ либо ZIP, выбор обертки проходит автоматически в зависимости от ОС, для всех UNIX подобных систем будет выбран тип архивов TarGZ, для Windows ZIP;
- WithContext - добавляет обертку Context;
- WithCheckDirectory - проверяет директорию на существование и доступность, если директория не существует, создает её;
- WithFileCount - устанавливает в метрике кол. файлов, на момент создания коллекции.
Важно. Все опции будут примениться в той последовательности, в которой они были переданы.