mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 10:03:42 +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
 | 
						|
}
 |