mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-01 00:23:56 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			496 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			496 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package longpath
 | |
| 
 | |
| import (
 | |
| 	"path/filepath"
 | |
| 	"strings"
 | |
| )
 | |
| 
 | |
| // LongAbs makes a path absolute and returns it in NT long path form.
 | |
| func LongAbs(path string) (string, error) {
 | |
| 	if strings.HasPrefix(path, `\\?\`) || strings.HasPrefix(path, `\\.\`) {
 | |
| 		return path, nil
 | |
| 	}
 | |
| 	if !filepath.IsAbs(path) {
 | |
| 		absPath, err := filepath.Abs(path)
 | |
| 		if err != nil {
 | |
| 			return "", err
 | |
| 		}
 | |
| 		path = absPath
 | |
| 	}
 | |
| 	if strings.HasPrefix(path, `\\`) {
 | |
| 		return `\\?\UNC\` + path[2:], nil
 | |
| 	}
 | |
| 	return `\\?\` + path, nil
 | |
| }
 | 
