Added long paths fix for samba network shares

This commit is contained in:
Daniel Örn 2016-10-05 07:09:56 +02:00
parent c45b498a8b
commit 5c7325f44a

View file

@ -5,6 +5,7 @@ import (
"os"
"path/filepath"
"runtime"
"strings"
)
// File is an open file on a file system.
@ -26,6 +27,13 @@ func fixpath(name string) string {
if runtime.GOOS == "windows" {
abspath, err := filepath.Abs(name)
if err == nil {
// Check if \\?\UNC\ already exist
if strings.HasPrefix(abspath, "\\\\?\\UNC\\") { return abspath }
// Check if \\?\ already exist
if strings.HasPrefix(abspath, "\\\\?\\") { return abspath }
// Check if path starts with \\
if strings.HasPrefix(abspath, "\\\\") { return strings.Replace(abspath, "\\\\", "\\\\?\\UNC\\", 1) }
// Normal path
return "\\\\?\\" + abspath
}
}