io/fs

Filesystem
import "io/fs"

Defines basic interfaces for filesystem abstractions, enabling virtual file systems.

Example

package main

import (
    "fmt"
    "io/fs"
    "os"
)

func main() {
    fs.WalkDir(os.DirFS("."), ".", func(path string, d fs.DirEntry, err error) error {
        fmt.Println(path)
        return nil
    })
}

Key Types & Functions

FSFileDirEntryWalkDirReadDirSub

About io/fs

The io/fs package (imported as io/fs) belongs to the Filesystem category of Go packages. Defines basic interfaces for filesystem abstractions, enabling virtual file systems.

Go's standard library is one of the language's greatest strengths, providing production-ready implementations for networking, cryptography, encoding, I/O, and more. The io/fs package follows Go's philosophy of simplicity and composability — small, focused packages that combine through interfaces like io.Reader and io.Writer.

When using io/fs in production, follow Go best practices: handle errors explicitly, use context for cancellation and timeouts, prefer composition over inheritance, and write table-driven tests. The Go documentation at pkg.go.dev provides comprehensive API references and examples for every exported type and function.

Related Packages