func()

in experimental/fs_storage.go [55:88]


func (f *fsStorage) List(rootDir string, fn walkFunc) error {
	rootDir, err := filepath.Abs(f.fullPath(rootDir))
	if err != nil {
		return nil
	}
	rootDir += "/"

	return filepath.Walk(rootDir, func(fullPath string, info os.FileInfo, err error) error {
		path := fullPath

		if strings.HasPrefix(path, rootDir) {
			path = path[len(rootDir):]
		}

		if path == "" {
			return nil
		}

		fi := fileInfo{fullPath: fullPath, size: info.Size(), directory: info.IsDir()}

		if info.IsDir() {
			err = fn(path, fi, err)
			if err != nil {
				return err
			}

			return filepath.SkipDir
		} else {

			fi := fileInfo{fullPath: fullPath, size: info.Size()}
			return fn(path, fi, err)
		}
	})
}