123456789101112131415161718192021222324 |
- 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
- }
|