return PathSeparator == c
}
-// basename removes trailing slashes and the leading directory name from path name.
-func basename(name string) string {
- i := len(name) - 1
- // Remove trailing slashes
- for ; i > 0 && name[i] == '/'; i-- {
- name = name[:i]
- }
- // Remove leading directory name
- for i--; i >= 0; i-- {
- if name[i] == '/' {
- name = name[i+1:]
- break
- }
- }
-
- return name
-}
-
// splitPath returns the base name and parent directory.
func splitPath(path string) (string, string) {
// if no better parent is found, the path is relative from "here"
return c == '\\' || c == '/'
}
-// basename removes trailing slashes and the leading
-// directory name and drive letter from path name.
-func basename(name string) string {
- // Remove drive letter
- if len(name) == 2 && name[1] == ':' {
- name = "."
- } else if len(name) > 2 && name[1] == ':' {
- name = name[2:]
- }
- i := len(name) - 1
- // Remove trailing slashes
- for ; i > 0 && (name[i] == '/' || name[i] == '\\'); i-- {
- name = name[:i]
- }
- // Remove leading directory name
- for i--; i >= 0; i-- {
- if name[i] == '/' || name[i] == '\\' {
- name = name[i+1:]
- break
- }
- }
- return name
-}
-
func dirname(path string) string {
vol := filepathlite.VolumeName(path)
i := len(path) - 1
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = int64(fs.sys.Size)
fs.modTime = stTimespecToTime(fs.sys.Mtim)
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtime, fs.sys.MtimeNsec)
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = fs.sys.Size
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
fs.mode = FileMode(fs.sys.Mode & 0777)
package os
import (
+ "internal/filepathlite"
"syscall"
"time"
)
func fillFileStatFromSys(fs *fileStat, name string) {
- fs.name = basename(name)
+ fs.name = filepathlite.Base(name)
fs.size = int64(fs.sys.Size)
fs.mode = FileMode(fs.sys.Mode)
fs.modTime = time.Unix(0, int64(fs.sys.Mtime))
package os
import (
+ "internal/filepathlite"
"internal/syscall/windows"
"syscall"
"unsafe"
}
switch ft {
case syscall.FILE_TYPE_PIPE, syscall.FILE_TYPE_CHAR:
- return &fileStat{name: basename(name), filetype: ft}, nil
+ return &fileStat{name: filepathlite.Base(name), filetype: ft}, nil
}
fs, err := newFileStatFromGetFileInformationByHandle(name, h)
if err != nil {
}
return &fileStat{
- name: basename(path),
+ name: filepathlite.Base(path),
FileAttributes: d.FileAttributes,
CreationTime: d.CreationTime,
LastAccessTime: d.LastAccessTime,
return &PathError{Op: "FullPath", Path: path, Err: err}
}
}
- fs.name = basename(path)
+ fs.name = filepathlite.Base(path)
return nil
}