12345678910111213141516171819202122 |
- package archive
- import (
- "fmt"
- "path/filepath"
- "strings"
- )
- // checkSystemDriveAndRemoveDriveLetter is the Windows implementation
- // of CheckSystemDriveAndRemoveDriveLetter
- func checkSystemDriveAndRemoveDriveLetter(path string) (string, error) {
- if len(path) == 2 && string(path[1]) == ":" {
- return "", fmt.Errorf("no relative path specified in %q", path)
- }
- if !filepath.IsAbs(path) || len(path) < 2 {
- return filepath.FromSlash(path), nil
- }
- if string(path[1]) == ":" && !strings.EqualFold(string(path[0]), "c") {
- return "", fmt.Errorf("the specified path is not on the system drive (C:)")
- }
- return filepath.FromSlash(path[2:]), nil
- }
|