mirror of
https://github.com/1f349/go-webdav.git
synced 2024-10-18 08:51:50 +01:00
65 lines
990 B
Go
65 lines
990 B
Go
// Package webdav provides a client and server WebDAV filesystem implementation.
|
|
//
|
|
// WebDAV is defined in RFC 4918.
|
|
package webdav
|
|
|
|
import (
|
|
"io/fs"
|
|
"path"
|
|
"time"
|
|
)
|
|
|
|
type FileInfo struct {
|
|
Path string
|
|
Size int64
|
|
ModTime time.Time
|
|
IsDir bool
|
|
MIMEType string
|
|
ETag string
|
|
}
|
|
|
|
type fileInfo struct {
|
|
FileInfo
|
|
}
|
|
|
|
var (
|
|
_ fs.FileInfo = (*fileInfo)(nil)
|
|
_ fs.DirEntry = (*fileInfo)(nil)
|
|
)
|
|
|
|
func (fi *fileInfo) Name() string {
|
|
return path.Base(fi.Path)
|
|
}
|
|
|
|
func (fi *fileInfo) Size() int64 {
|
|
return fi.FileInfo.Size
|
|
}
|
|
|
|
func (fi *fileInfo) Mode() fs.FileMode {
|
|
var mode fs.FileMode
|
|
if fi.FileInfo.IsDir {
|
|
mode |= fs.ModeDir
|
|
}
|
|
return mode
|
|
}
|
|
|
|
func (fi *fileInfo) ModTime() time.Time {
|
|
return fi.FileInfo.ModTime
|
|
}
|
|
|
|
func (fi *fileInfo) IsDir() bool {
|
|
return fi.FileInfo.IsDir
|
|
}
|
|
|
|
func (fi *fileInfo) Sys() interface{} {
|
|
return nil
|
|
}
|
|
|
|
func (fi *fileInfo) Type() fs.FileMode {
|
|
return fi.Mode()
|
|
}
|
|
|
|
func (fi *fileInfo) Info() (fs.FileInfo, error) {
|
|
return fi, nil
|
|
}
|