in lib/store/base/file_entry.go [125:158]
func (f *localFileEntryFactory) ListNames(state FileState) ([]string, error) {
var names []string
var readNames func(string) error
readNames = func(dir string) error {
infos, err := ioutil.ReadDir(dir)
if err != nil {
if os.IsNotExist(err) {
return nil
}
return err
}
for _, info := range infos {
if info.IsDir() {
if err := readNames(filepath.Join(dir, info.Name())); err != nil {
return err
}
continue
}
if info.Name() == DefaultDataFileName {
name, err := filepath.Rel(state.GetDirectory(), dir)
if err != nil {
return err
}
names = append(names, name)
}
}
return nil
}
err := readNames(state.GetDirectory())
return names, err
}