func NewScanner(osDirname string) (*Scanner, error) {
	return NewScannerWithScratchBuffer(osDirname, nil)
}
NewScanner returns a new directory Scanner that lazily enumerates the
contents of a single directory.

scanner, err := godirwalk.NewScanner(dirname)
if err != nil {
fatal("cannot scan directory: %s", err)
}

for scanner.Scan() {
dirent, err := scanner.Dirent()
if err != nil {
warning("cannot get dirent: %s", err)
continue
}
name := dirent.Name()
if name == "break" {
break
}
if name == "continue" {
continue
}
fmt.Printf("%v %v\n", dirent.ModeType(), dirent.Name())
}
if err := scanner.Err(); err != nil {
fatal("cannot scan directory: %s", err)
}
package godirwalk
import (
	"os"
	"syscall"
	"unsafe"
)
type Scanner struct {
	scratchBuffer []byte  
	workBuffer    []byte  
	osDirname     string
	childName     string
	err           error     
	statErr       error     
	dh            *os.File  
	de            *Dirent   
	sde           syscall.Dirent
	fd            int  
}