Julien Sellier

Last update: 2025-12-11

Merging Multiple File Systems (fs.FS) in Go

package multifs

import "io/fs"

type FS []fs.FS

func (fsys FS) Open(name string) (fs.File, error) {
	for _, fsys := range fsys {
		if fsys == nil {
			continue
		}
		f, err := fsys.Open(name)
		if err != nil {
			continue
		}
		return f, nil
	}
	return nil, fs.ErrNotExist
}