48 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package godirwalk
 | 
						|
 | 
						|
// ReadDirents returns a sortable slice of pointers to Dirent structures, each
 | 
						|
// representing the file system name and mode type for one of the immediate
 | 
						|
// descendant of the specified directory. If the specified directory is a
 | 
						|
// symbolic link, it will be resolved.
 | 
						|
//
 | 
						|
// If an optional scratch buffer is provided that is at least one page of
 | 
						|
// memory, it will be used when reading directory entries from the file system.
 | 
						|
//
 | 
						|
//    children, err := godirwalk.ReadDirents(osDirname, nil)
 | 
						|
//    if err != nil {
 | 
						|
//        return nil, errors.Wrap(err, "cannot get list of directory children")
 | 
						|
//    }
 | 
						|
//    sort.Sort(children)
 | 
						|
//    for _, child := range children {
 | 
						|
//        fmt.Printf("%s %s\n", child.ModeType, child.Name)
 | 
						|
//    }
 | 
						|
func ReadDirents(osDirname string, scratchBuffer []byte) (Dirents, error) {
 | 
						|
	return readdirents(osDirname, scratchBuffer)
 | 
						|
}
 | 
						|
 | 
						|
// ReadDirnames returns a slice of strings, representing the immediate
 | 
						|
// descendants of the specified directory. If the specified directory is a
 | 
						|
// symbolic link, it will be resolved.
 | 
						|
//
 | 
						|
// If an optional scratch buffer is provided that is at least one page of
 | 
						|
// memory, it will be used when reading directory entries from the file system.
 | 
						|
//
 | 
						|
// Note that this function, depending on operating system, may or may not invoke
 | 
						|
// the ReadDirents function, in order to prepare the list of immediate
 | 
						|
// descendants. Therefore, if your program needs both the names and the file
 | 
						|
// system mode types of descendants, it will always be faster to invoke
 | 
						|
// ReadDirents directly, rather than calling this function, then looping over
 | 
						|
// the results and calling os.Stat for each child.
 | 
						|
//
 | 
						|
//    children, err := godirwalk.ReadDirnames(osDirname, nil)
 | 
						|
//    if err != nil {
 | 
						|
//        return nil, errors.Wrap(err, "cannot get list of directory children")
 | 
						|
//    }
 | 
						|
//    sort.Strings(children)
 | 
						|
//    for _, child := range children {
 | 
						|
//        fmt.Printf("%s\n", child)
 | 
						|
//    }
 | 
						|
func ReadDirnames(osDirname string, scratchBuffer []byte) ([]string, error) {
 | 
						|
	return readdirnames(osDirname, scratchBuffer)
 | 
						|
}
 |