Beispiel #1
0
// From the parent inode, consult the vfilename and return its corresponding filename
// With any error, the string returned will be "".
// However, when the file does not exist, error WILL BE nil
func lookUp(inode string, vfilename string, io outapi.Outapi) (string, error) {
	if !CheckValidFilename(vfilename) {
		return "", exception.EX_INVALID_FILENAME
	}
	var meta, file, err = io.Get(GenFileName(inode, vfilename))
	if file == nil {
		return "", err
	}
	if meta == nil || meta[META_INODE_TYPE] != META_INODE_TYPE_FOLDER {
		return "", err
	}
	if fileNnode, ok := file.(*filetype.Nnode); !ok {
		Secretary.Warn("kernel.filesystem::lookUp", "File "+GenFileName(inode, vfilename)+" has a invalid filetype.")
		return "", nil
	} else {
		//fmt.Println("+++++++++++++++++++++", GenFileName(inode, vfilename), "=", fileNnode.DesName)
		return fileNnode.DesName, nil
	}
}