Documentation ¶
Overview ¶
Package fs implements an OS independent abstraction of a file system suitable for backup purposes.
Index ¶
- Constants
- Variables
- func Chmod(name string, mode os.FileMode) error
- func Chtimes(name string, atime time.Time, mtime time.Time) error
- func Create(name string) (*os.File, error)
- func DeviceID(fi os.FileInfo) (deviceID uint64, err error)
- func HasPathPrefix(base, p string) bool
- func HasSufficientPrivilegesForVSS() error
- func IsRegularFile(fi os.FileInfo) bool
- func Link(oldname, newname string) error
- func Lstat(name string) (os.FileInfo, error)
- func Mkdir(name string, perm os.FileMode) error
- func MkdirAll(path string, perm os.FileMode) error
- func OpenFile(name string, flag int, perm os.FileMode) (*os.File, error)
- func Readlink(name string) (string, error)
- func Remove(name string) error
- func RemoveAll(path string) error
- func RemoveIfExists(filename string) error
- func Stat(name string) (os.FileInfo, error)
- func Symlink(oldname, newname string) error
- func TempFile(dir, prefix string) (f *os.File, err error)
- func Walk(root string, walkFn filepath.WalkFunc) error
- type ErrorHandler
- type ExtendedFileInfo
- type FS
- type File
- type HRESULT
- type IVSSAsync
- type IVSSAsyncVTable
- type IVssBackupComponents
- func (vss *IVssBackupComponents) AbortBackup() error
- func (vss *IVssBackupComponents) AddToSnapshotSet(volumeName string, idSnapshot *ole.GUID) error
- func (vss *IVssBackupComponents) BackupComplete() (*IVSSAsync, error)
- func (vss *IVssBackupComponents) DeleteSnapshots(snapshotID ole.GUID) (int32, ole.GUID, error)
- func (vss *IVssBackupComponents) DoSnapshotSet() (*IVSSAsync, error)
- func (vss *IVssBackupComponents) GatherWriterMetadata() (*IVSSAsync, error)
- func (vss *IVssBackupComponents) GetSnapshotProperties(snapshotID ole.GUID, properties *VssSnapshotProperties) error
- func (vss *IVssBackupComponents) InitializeForBackup() error
- func (vss *IVssBackupComponents) IsVolumeSupported(volumeName string) (bool, error)
- func (vss *IVssBackupComponents) PrepareForBackup() (*IVSSAsync, error)
- func (vss *IVssBackupComponents) SetBackupState(selectComponents bool, backupBootableSystemState bool, backupType VssBackup, ...) error
- func (vss *IVssBackupComponents) SetContext(context VssContext) error
- func (vss *IVssBackupComponents) StartSnapshotSet() (ole.GUID, error)
- type IVssBackupComponentsVTable
- type Local
- func (fs Local) Abs(path string) (string, error)
- func (fs Local) Base(path string) string
- func (fs Local) Clean(p string) string
- func (fs Local) Dir(path string) string
- func (fs Local) IsAbs(path string) bool
- func (fs Local) Join(elem ...string) string
- func (fs Local) Lstat(name string) (os.FileInfo, error)
- func (fs Local) Open(name string) (File, error)
- func (fs Local) OpenFile(name string, flag int, perm os.FileMode) (File, error)
- func (fs Local) Separator() string
- func (fs Local) Stat(name string) (os.FileInfo, error)
- func (fs Local) VolumeName(path string) string
- type LocalVss
- type MessageHandler
- type MountPoint
- type Reader
- func (fs *Reader) Abs(p string) (string, error)
- func (fs *Reader) Base(p string) string
- func (fs *Reader) Clean(p string) string
- func (fs *Reader) Dir(p string) string
- func (fs *Reader) IsAbs(p string) bool
- func (fs *Reader) Join(elem ...string) string
- func (fs *Reader) Lstat(name string) (os.FileInfo, error)
- func (fs *Reader) Open(name string) (f File, err error)
- func (fs *Reader) OpenFile(name string, flag int, perm os.FileMode) (f File, err error)
- func (fs *Reader) Separator() string
- func (fs *Reader) Stat(name string) (os.FileInfo, error)
- func (fs *Reader) VolumeName(path string) string
- type Track
- type VssBackup
- type VssContext
- type VssObjectType
- type VssSnapshot
- type VssSnapshotProperties
Constants ¶
const ( O_RDONLY int = syscall.O_RDONLY // open the file read-only. O_WRONLY int = syscall.O_WRONLY // open the file write-only. O_RDWR int = syscall.O_RDWR // open the file read-write. O_APPEND int = syscall.O_APPEND // append data to the file when writing. O_CREATE int = syscall.O_CREAT // create a new file if none exists. O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist O_SYNC int = syscall.O_SYNC // open for synchronous I/O. O_TRUNC int = syscall.O_TRUNC // if possible, truncate file when opened. O_NONBLOCK int = syscall.O_NONBLOCK // don't block open on fifos etc. )
Flags to OpenFile wrapping those of the underlying system. Not all flags may be implemented on a given system.
const ( VSS_S_ASYNC_PENDING = 0x00042309 VSS_S_ASYNC_FINISHED = 0x0004230A VSS_S_ASYNC_CANCELLED = 0x0004230B )
Constants for IVSSAsync api.
const O_NOFOLLOW int = 0
O_NOFOLLOW is a noop on Windows.
Variables ¶
var ErrFileEmpty = errors.New("no data read")
ErrFileEmpty is returned inside a *os.PathError by Read() for the file opened from the fs provided by Reader when no data could be read and AllowEmptyFile is not set.
var UIID_IVSS_ASYNC = ole.NewGUID("{507C37B4-CF5B-4e95-B0AF-14EB9767467E}")
UIID_IVSS_ASYNC defines to GUID of IVSSAsync.
var UUID_IVSS = ole.NewGUID("{665c1d5f-c218-414d-a05d-7fef5f9d5c86}")
UUID_IVSS defines the GUID of IVssBackupComponents.
Functions ¶
func Chtimes ¶ added in v0.8.1
Chtimes changes the access and modification times of the named file, similar to the Unix utime() or utimes() functions.
The underlying filesystem may truncate or round the values to a less precise time unit. If there is an error, it will be of type *PathError.
func Create ¶
Create creates the named file with mode 0666 (before umask), truncating it if it already exists. If successful, methods on the returned File can be used for I/O; the associated file descriptor has mode O_RDWR. If there is an error, it will be of type *PathError.
func DeviceID ¶
DeviceID extracts the device ID from an os.FileInfo object by casting it to syscall.Stat_t
func HasPathPrefix ¶
HasPathPrefix returns true if p is a subdir of (or a file within) base. It assumes a file system which is case sensitive. If the paths are not of the same type (one is relative, the other is absolute), false is returned.
func HasSufficientPrivilegesForVSS ¶ added in v0.11.0
func HasSufficientPrivilegesForVSS() error
HasSufficientPrivilegesForVSS returns nil if the user is allowed to use VSS.
func IsRegularFile ¶ added in v0.9.0
IsRegularFile returns true if fi belongs to a normal file. If fi is nil, false is returned.
func Link ¶
Link creates newname as a hard link to oldname. If there is an error, it will be of type *LinkError.
func Lstat ¶
Lstat returns the FileInfo structure describing the named file. If the file is a symbolic link, the returned FileInfo describes the symbolic link. Lstat makes no attempt to follow the link. If there is an error, it will be of type *PathError.
func Mkdir ¶
Mkdir creates a new directory with the specified name and permission bits. If there is an error, it will be of type *PathError.
func MkdirAll ¶
MkdirAll creates a directory named path, along with any necessary parents, and returns nil, or else returns an error. The permission bits perm are used for all directories that MkdirAll creates. If path is already a directory, MkdirAll does nothing and returns nil.
func OpenFile ¶
OpenFile is the generalized open call; most users will use Open or Create instead. It opens the named file with specified flag (O_RDONLY etc.) and perm, (0666 etc.) if applicable. If successful, methods on the returned File can be used for I/O. If there is an error, it will be of type *PathError.
func Readlink ¶
Readlink returns the destination of the named symbolic link. If there is an error, it will be of type *PathError.
func Remove ¶
Remove removes the named file or directory. If there is an error, it will be of type *PathError.
func RemoveAll ¶
RemoveAll removes path and any children it contains. It removes everything it can but returns the first error it encounters. If the path does not exist, RemoveAll returns nil (no error).
func RemoveIfExists ¶
RemoveIfExists removes a file, returning no error if it does not exist.
func Stat ¶
Stat returns a FileInfo structure describing the named file. If there is an error, it will be of type *PathError.
func Symlink ¶
Symlink creates newname as a symbolic link to oldname. If there is an error, it will be of type *LinkError.
func Walk ¶
Walk walks the file tree rooted at root, calling walkFn for each file or directory in the tree, including root. All errors that arise visiting files and directories are filtered by walkFn. The files are walked in lexical order, which makes the output deterministic but means that for very large directories Walk can be inefficient. Walk does not follow symbolic links.
Types ¶
type ErrorHandler ¶ added in v0.11.0
ErrorHandler is used to report errors via callback
type ExtendedFileInfo ¶ added in v0.9.0
type ExtendedFileInfo struct { os.FileInfo DeviceID uint64 // ID of device containing the file Inode uint64 // Inode number Links uint64 // Number of hard links UID uint32 // owner user ID GID uint32 // owner group ID Device uint64 // Device ID (if this is a device file) BlockSize int64 // block size for filesystem IO Blocks int64 // number of allocated filesystem blocks Size int64 // file size in byte AccessTime time.Time // last access time stamp ModTime time.Time // last (content) modification time stamp ChangeTime time.Time // last status change time stamp }
ExtendedFileInfo is an extended stat_t, filled with attributes that are supported by most operating systems. The original FileInfo is embedded.
func ExtendedStat ¶ added in v0.9.0
func ExtendedStat(fi os.FileInfo) ExtendedFileInfo
ExtendedStat returns an ExtendedFileInfo constructed from the os.FileInfo.
type FS ¶ added in v0.9.0
type FS interface { Open(name string) (File, error) OpenFile(name string, flag int, perm os.FileMode) (File, error) Stat(name string) (os.FileInfo, error) Lstat(name string) (os.FileInfo, error) Join(elem ...string) string Separator() string Abs(path string) (string, error) Clean(path string) string VolumeName(path string) string IsAbs(path string) bool Dir(path string) string Base(path string) string }
FS bundles all methods needed for a file system.
type File ¶
type File interface { io.Reader io.Closer Fd() uintptr Readdirnames(n int) ([]string, error) Readdir(int) ([]os.FileInfo, error) Seek(int64, int) (int64, error) Stat() (os.FileInfo, error) Name() string }
File is an open file on a file system.
type HRESULT ¶ added in v0.11.0
type HRESULT uint
HRESULT is a custom type for the windows api HRESULT type.
const ( S_OK HRESULT = 0x00000000 E_ACCESSDENIED HRESULT = 0x80070005 E_OUTOFMEMORY HRESULT = 0x8007000E E_INVALIDARG HRESULT = 0x80070057 VSS_E_BAD_STATE HRESULT = 0x80042301 VSS_E_UNEXPECTED HRESULT = 0x80042302 VSS_E_PROVIDER_ALREADY_REGISTERED HRESULT = 0x80042303 VSS_E_PROVIDER_NOT_REGISTERED HRESULT = 0x80042304 VSS_E_PROVIDER_VETO HRESULT = 0x80042306 VSS_E_PROVIDER_IN_USE HRESULT = 0x80042307 VSS_E_OBJECT_NOT_FOUND HRESULT = 0x80042308 VSS_E_VOLUME_NOT_SUPPORTED HRESULT = 0x8004230C VSS_E_VOLUME_NOT_SUPPORTED_BY_PROVIDER HRESULT = 0x8004230E VSS_E_OBJECT_ALREADY_EXISTS HRESULT = 0x8004230D VSS_E_UNEXPECTED_PROVIDER_ERROR HRESULT = 0x8004230F VSS_E_CORRUPT_XML_DOCUMENT HRESULT = 0x80042310 VSS_E_INVALID_XML_DOCUMENT HRESULT = 0x80042311 VSS_E_MAXIMUM_NUMBER_OF_VOLUMES_REACHED HRESULT = 0x80042312 VSS_E_FLUSH_WRITES_TIMEOUT HRESULT = 0x80042313 VSS_E_HOLD_WRITES_TIMEOUT HRESULT = 0x80042314 VSS_E_UNEXPECTED_WRITER_ERROR HRESULT = 0x80042315 VSS_E_SNAPSHOT_SET_IN_PROGRESS HRESULT = 0x80042316 VSS_E_MAXIMUM_NUMBER_OF_SNAPSHOTS_REACHED HRESULT = 0x80042317 VSS_E_WRITER_INFRASTRUCTURE HRESULT = 0x80042318 VSS_E_WRITER_NOT_RESPONDING HRESULT = 0x80042319 VSS_E_WRITER_ALREADY_SUBSCRIBED HRESULT = 0x8004231A VSS_E_UNSUPPORTED_CONTEXT HRESULT = 0x8004231B VSS_E_VOLUME_IN_USE HRESULT = 0x8004231D VSS_E_MAXIMUM_DIFFAREA_ASSOCIATIONS_REACHED HRESULT = 0x8004231E VSS_E_INSUFFICIENT_STORAGE HRESULT = 0x8004231F VSS_E_NO_SNAPSHOTS_IMPORTED HRESULT = 0x80042320 VSS_E_SOME_SNAPSHOTS_NOT_IMPORTED HRESULT = 0x80042321 VSS_E_MAXIMUM_NUMBER_OF_REMOTE_MACHINES_REACHED HRESULT = 0x80042322 VSS_E_REMOTE_SERVER_UNAVAILABLE HRESULT = 0x80042323 VSS_E_REMOTE_SERVER_UNSUPPORTED HRESULT = 0x80042324 VSS_E_REVERT_IN_PROGRESS HRESULT = 0x80042325 VSS_E_REVERT_VOLUME_LOST HRESULT = 0x80042326 VSS_E_REBOOT_REQUIRED HRESULT = 0x80042327 VSS_E_TRANSACTION_FREEZE_TIMEOUT HRESULT = 0x80042328 VSS_E_TRANSACTION_THAW_TIMEOUT HRESULT = 0x80042329 VSS_E_VOLUME_NOT_LOCAL HRESULT = 0x8004232D VSS_E_CLUSTER_TIMEOUT HRESULT = 0x8004232E VSS_E_WRITERERROR_INCONSISTENTSNAPSHOT HRESULT = 0x800423F0 VSS_E_WRITERERROR_OUTOFRESOURCES HRESULT = 0x800423F1 VSS_E_WRITERERROR_TIMEOUT HRESULT = 0x800423F2 VSS_E_WRITERERROR_RETRYABLE HRESULT = 0x800423F3 VSS_E_WRITERERROR_NONRETRYABLE HRESULT = 0x800423F4 VSS_E_WRITERERROR_RECOVERY_FAILED HRESULT = 0x800423F5 VSS_E_BREAK_REVERT_ID_FAILED HRESULT = 0x800423F6 VSS_E_LEGACY_PROVIDER HRESULT = 0x800423F7 VSS_E_MISSING_DISK HRESULT = 0x800423F8 VSS_E_MISSING_HIDDEN_VOLUME HRESULT = 0x800423F9 VSS_E_MISSING_VOLUME HRESULT = 0x800423FA VSS_E_AUTORECOVERY_FAILED HRESULT = 0x800423FB VSS_E_DYNAMIC_DISK_ERROR HRESULT = 0x800423FC VSS_E_NONTRANSPORTABLE_BCD HRESULT = 0x800423FD VSS_E_CANNOT_REVERT_DISKID HRESULT = 0x800423FE VSS_E_RESYNC_IN_PROGRESS HRESULT = 0x800423FF VSS_E_CLUSTER_ERROR HRESULT = 0x80042400 VSS_E_UNSELECTED_VOLUME HRESULT = 0x8004232A VSS_E_SNAPSHOT_NOT_IN_SET HRESULT = 0x8004232B VSS_E_NESTED_VOLUME_LIMIT HRESULT = 0x8004232C VSS_E_NOT_SUPPORTED HRESULT = 0x8004232F VSS_E_WRITERERROR_PARTIAL_FAILURE HRESULT = 0x80042336 VSS_E_WRITER_STATUS_NOT_AVAILABLE HRESULT = 0x80042409 )
HRESULT constant values necessary for using VSS api.
type IVSSAsync ¶ added in v0.11.0
IVSSAsync VSS api interface.
func (*IVSSAsync) QueryStatus ¶ added in v0.11.0
QueryStatus calls the equivalent VSS api.
func (*IVSSAsync) WaitUntilAsyncFinished ¶ added in v0.11.0
WaitUntilAsyncFinished waits until either the async call is finshed or the given timeout is reached.
type IVSSAsyncVTable ¶ added in v0.11.0
type IVSSAsyncVTable struct { ole.IUnknownVtbl // contains filtered or unexported fields }
IVSSAsyncVTable is the vtable for IVSSAsync.
type IVssBackupComponents ¶ added in v0.11.0
IVssBackupComponents VSS api interface.
func (*IVssBackupComponents) AbortBackup ¶ added in v0.11.0
func (vss *IVssBackupComponents) AbortBackup() error
AbortBackup calls the equivalent VSS api.
func (*IVssBackupComponents) AddToSnapshotSet ¶ added in v0.11.0
func (vss *IVssBackupComponents) AddToSnapshotSet(volumeName string, idSnapshot *ole.GUID) error
AddToSnapshotSet calls the equivalent VSS api.
func (*IVssBackupComponents) BackupComplete ¶ added in v0.11.0
func (vss *IVssBackupComponents) BackupComplete() (*IVSSAsync, error)
BackupComplete calls the equivalent VSS api.
func (*IVssBackupComponents) DeleteSnapshots ¶ added in v0.11.0
DeleteSnapshots calls the equivalent VSS api.
func (*IVssBackupComponents) DoSnapshotSet ¶ added in v0.11.0
func (vss *IVssBackupComponents) DoSnapshotSet() (*IVSSAsync, error)
DoSnapshotSet calls the equivalent VSS api.
func (*IVssBackupComponents) GatherWriterMetadata ¶ added in v0.11.0
func (vss *IVssBackupComponents) GatherWriterMetadata() (*IVSSAsync, error)
GatherWriterMetadata calls the equivalent VSS api.
func (*IVssBackupComponents) GetSnapshotProperties ¶ added in v0.11.0
func (vss *IVssBackupComponents) GetSnapshotProperties(snapshotID ole.GUID, properties *VssSnapshotProperties) error
GetSnapshotProperties calls the equivalent VSS api.
func (*IVssBackupComponents) InitializeForBackup ¶ added in v0.11.0
func (vss *IVssBackupComponents) InitializeForBackup() error
InitializeForBackup calls the equivalent VSS api.
func (*IVssBackupComponents) IsVolumeSupported ¶ added in v0.11.0
func (vss *IVssBackupComponents) IsVolumeSupported(volumeName string) (bool, error)
IsVolumeSupported calls the equivalent VSS api.
func (*IVssBackupComponents) PrepareForBackup ¶ added in v0.11.0
func (vss *IVssBackupComponents) PrepareForBackup() (*IVSSAsync, error)
PrepareForBackup calls the equivalent VSS api.
func (*IVssBackupComponents) SetBackupState ¶ added in v0.11.0
func (vss *IVssBackupComponents) SetBackupState(selectComponents bool, backupBootableSystemState bool, backupType VssBackup, partialFileSupport bool, ) error
SetBackupState calls the equivalent VSS api.
func (*IVssBackupComponents) SetContext ¶ added in v0.11.0
func (vss *IVssBackupComponents) SetContext(context VssContext) error
SetContext calls the equivalent VSS api.
func (*IVssBackupComponents) StartSnapshotSet ¶ added in v0.11.0
func (vss *IVssBackupComponents) StartSnapshotSet() (ole.GUID, error)
StartSnapshotSet calls the equivalent VSS api.
type IVssBackupComponentsVTable ¶ added in v0.11.0
type IVssBackupComponentsVTable struct { ole.IUnknownVtbl // contains filtered or unexported fields }
IVssBackupComponentsVTable is the vtable for IVssBackupComponents.
type Local ¶ added in v0.9.0
type Local struct{}
Local is the local file system. Most methods are just passed on to the stdlib.
func (Local) Abs ¶ added in v0.9.0
Abs returns an absolute representation of path. If the path is not absolute it will be joined with the current working directory to turn it into an absolute path. The absolute path name for a given file is not guaranteed to be unique. Abs calls Clean on the result.
func (Local) Clean ¶ added in v0.9.0
Clean returns the cleaned path. For details, see filepath.Clean.
func (Local) Join ¶ added in v0.9.0
Join joins any number of path elements into a single path, adding a Separator if necessary. Join calls Clean on the result; in particular, all empty strings are ignored. On Windows, the result is a UNC path if and only if the first path element is a UNC path.
func (Local) Lstat ¶ added in v0.9.0
Lstat returns the FileInfo structure describing the named file. If the file is a symbolic link, the returned FileInfo describes the symbolic link. Lstat makes no attempt to follow the link. If there is an error, it will be of type *PathError.
func (Local) OpenFile ¶ added in v0.9.0
OpenFile is the generalized open call; most users will use Open or Create instead. It opens the named file with specified flag (O_RDONLY etc.) and perm, (0666 etc.) if applicable. If successful, methods on the returned File can be used for I/O. If there is an error, it will be of type *PathError.
func (Local) Separator ¶ added in v0.9.0
Separator returns the OS and FS dependent separator for dirs/subdirs/files.
func (Local) Stat ¶ added in v0.9.0
Stat returns a FileInfo describing the named file. If there is an error, it will be of type *PathError.
func (Local) VolumeName ¶ added in v0.9.0
VolumeName returns leading volume name. Given "C:\foo\bar" it returns "C:" on Windows. Given "\\host\share\foo" it returns "\\host\share". On other platforms it returns "".
type LocalVss ¶ added in v0.11.0
type LocalVss struct { FS // contains filtered or unexported fields }
LocalVss is a wrapper around the local file system which uses windows volume shadow copy service (VSS) in a transparent way.
func NewLocalVss ¶ added in v0.11.0
func NewLocalVss(msgError ErrorHandler, msgMessage MessageHandler) *LocalVss
NewLocalVss creates a new wrapper around the windows filesystem using volume shadow copy service to access locked files.
func (*LocalVss) DeleteSnapshots ¶ added in v0.11.0
func (fs *LocalVss) DeleteSnapshots()
DeleteSnapshots deletes all snapshots that were created automatically.
func (*LocalVss) Lstat ¶ added in v0.11.0
Lstat wraps the Open method of the underlying file system.
type MessageHandler ¶ added in v0.11.0
type MessageHandler func(msg string, args ...interface{})
MessageHandler is used to report errors/messages via callbacks.
type MountPoint ¶ added in v0.11.0
type MountPoint struct {
// contains filtered or unexported fields
}
MountPoint wraps all information of a snapshot of a mountpoint on a volume.
func (*MountPoint) GetSnapshotDeviceObject ¶ added in v0.11.0
func (p *MountPoint) GetSnapshotDeviceObject() string
GetSnapshotDeviceObject returns root path to access the snapshot files and folders.
func (*MountPoint) IsSnapshotted ¶ added in v0.11.0
func (p *MountPoint) IsSnapshotted() bool
IsSnapshotted is true if this mount point was snapshotted successfully.
type Reader ¶ added in v0.9.0
type Reader struct { Name string io.ReadCloser // for FileInfo Mode os.FileMode ModTime time.Time Size int64 AllowEmptyFile bool // contains filtered or unexported fields }
Reader is a file system which provides a directory with a single file. When this file is opened for reading, the reader is passed through. The file can be opened once, all subsequent open calls return syscall.EIO. For Lstat(), the provided FileInfo is returned.
func (*Reader) Abs ¶ added in v0.9.0
Abs returns an absolute representation of path. If the path is not absolute it will be joined with the current working directory to turn it into an absolute path. The absolute path name for a given file is not guaranteed to be unique. Abs calls Clean on the result.
For the Reader, all paths are absolute.
func (*Reader) Clean ¶ added in v0.9.0
Clean returns the cleaned path. For details, see filepath.Clean.
func (*Reader) IsAbs ¶ added in v0.9.0
IsAbs reports whether the path is absolute. For the Reader, this is always the case.
func (*Reader) Join ¶ added in v0.9.0
Join joins any number of path elements into a single path, adding a Separator if necessary. Join calls Clean on the result; in particular, all empty strings are ignored. On Windows, the result is a UNC path if and only if the first path element is a UNC path.
func (*Reader) Lstat ¶ added in v0.9.0
Lstat returns the FileInfo structure describing the named file. If the file is a symbolic link, the returned FileInfo describes the symbolic link. Lstat makes no attempt to follow the link. If there is an error, it will be of type *PathError.
func (*Reader) OpenFile ¶ added in v0.9.0
OpenFile is the generalized open call; most users will use Open or Create instead. It opens the named file with specified flag (O_RDONLY etc.) and perm, (0666 etc.) if applicable. If successful, methods on the returned File can be used for I/O. If there is an error, it will be of type *PathError.
func (*Reader) Separator ¶ added in v0.9.0
Separator returns the OS and FS dependent separator for dirs/subdirs/files.
func (*Reader) Stat ¶ added in v0.9.0
Stat returns a FileInfo describing the named file. If there is an error, it will be of type *PathError.
func (*Reader) VolumeName ¶ added in v0.9.0
VolumeName returns leading volume name, for the Reader file system it's always the empty string.
type Track ¶ added in v0.9.0
type Track struct {
FS
}
Track is a wrapper around another file system which installs finalizers for open files which call panic() when they are not closed when the garbage collector releases them. This can be used to find resource leaks via open files.
type VssBackup ¶ added in v0.11.0
type VssBackup uint
VssBackup is a custom type for the windows api VssBackup type.
type VssContext ¶ added in v0.11.0
type VssContext uint
VssContext is a custom type for the windows api VssContext type.
const ( VSS_CTX_BACKUP VssContext = iota VSS_CTX_FILE_SHARE_BACKUP VSS_CTX_NAS_ROLLBACK VSS_CTX_APP_ROLLBACK VSS_CTX_CLIENT_ACCESSIBLE VSS_CTX_CLIENT_ACCESSIBLE_WRITERS VSS_CTX_ALL )
VssContext constant values necessary for using VSS api.
type VssObjectType ¶ added in v0.11.0
type VssObjectType uint
VssObjectType is a custom type for the windows api VssObjectType type.
const ( VSS_OBJECT_UNKNOWN VssObjectType = iota VSS_OBJECT_NONE VSS_OBJECT_SNAPSHOT_SET VSS_OBJECT_SNAPSHOT VSS_OBJECT_PROVIDER VSS_OBJECT_TYPE_COUNT )
VssObjectType constant values necessary for using VSS api.
type VssSnapshot ¶ added in v0.11.0
type VssSnapshot struct {
// contains filtered or unexported fields
}
VssSnapshot wraps windows volume shadow copy api (vss) via a simple interface to create and delete a vss snapshot.
func NewVssSnapshot ¶ added in v0.11.0
func NewVssSnapshot( volume string, timeoutInSeconds uint, msgError ErrorHandler) (VssSnapshot, error)
NewVssSnapshot creates a new vss snapshot. If creating the snapshots doesn't finish within the timeout an error is returned.
func (*VssSnapshot) Delete ¶ added in v0.11.0
func (p *VssSnapshot) Delete() error
Delete deletes the created snapshot.
func (*VssSnapshot) GetSnapshotDeviceObject ¶ added in v0.11.0
func (p *VssSnapshot) GetSnapshotDeviceObject() string
GetSnapshotDeviceObject returns root path to access the snapshot files and folders.
type VssSnapshotProperties ¶ added in v0.11.0
type VssSnapshotProperties struct {
// contains filtered or unexported fields
}
VssSnapshotProperties defines the properties of a VSS snapshot as part of the VSS api.
func (*VssSnapshotProperties) GetSnapshotDeviceObject ¶ added in v0.11.0
func (p *VssSnapshotProperties) GetSnapshotDeviceObject() string
GetSnapshotDeviceObject returns root path to access the snapshot files and folders.