Skip to content

Latest commit

 

History

History
31 lines (26 loc) · 3.15 KB

README.md

File metadata and controls

31 lines (26 loc) · 3.15 KB

Коллекция файлов.

Пакет предоставляет реализацию интерфейса 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 - устанавливает в метрике кол. файлов, на момент создания коллекции.

Важно. Все опции будут примениться в той последовательности, в которой они были переданы.