int DokanOperations.ReadFile(string filename, byte[] buffer, ref uint readBytes, long offset, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.ReadFile(filename, buffer, ref readBytes, offset, info)); } readBytes = 0; FsFile file = GetFile(filename); if (file == null) { return(-WinErrorCode.ERROR_FILE_NOT_FOUND); } int r = file.Read((int)offset, buffer, 0, buffer.Length); if (r <= 0) { return(-1); } readBytes = (uint)r; return(0); }
int DokanOperations.WriteFile(string filename, byte[] buffer, ref uint writtenBytes, long offset, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.WriteFile(filename, buffer, ref writtenBytes, offset, info)); } return(-WinErrorCode.ERROR_PATH_NOT_FOUND); }
int DokanOperations.UnlockFile(string filename, long offset, long length, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.UnlockFile(filename, offset, length, info)); } return(0); }
int DokanOperations.SetFileTime(string filename, System.DateTime ctime, System.DateTime atime, System.DateTime mtime, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.SetFileTime(filename, ctime, atime, mtime, info)); } return(-WinErrorCode.ERROR_FILE_NOT_FOUND); }
int DokanOperations.SetFileAttributes(string filename, System.IO.FileAttributes attr, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.SetFileAttributes(filename, attr, info)); } return(-WinErrorCode.ERROR_FILE_NOT_FOUND); }
int DokanOperations.SetEndOfFile(string filename, long length, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.SetEndOfFile(filename, length, info)); } return(-WinErrorCode.ERROR_FILE_NOT_FOUND); }
int DokanOperations.FlushFileBuffers(string filename, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.FlushFileBuffers(filename, info)); } return(0); }
int DokanOperations.DeleteDirectory(string filename, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.DeleteDirectory(filename, info)); } return(-WinErrorCode.ERROR_FILE_NOT_FOUND); }
int DokanOperations.CreateFile(string filename, System.IO.FileAccess access, System.IO.FileShare share, System.IO.FileMode mode, System.IO.FileOptions options, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.CreateFile(filename, access, share, mode, options, info)); } return(0); }
int DokanOperations.CloseFile(string filename, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.CloseFile(filename, info)); } return(0); }
int DokanOperations.FindFiles(string filename, System.Collections.ArrayList files, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.FindFiles(filename, files, info)); } FsDirectory dir = GetDirectory(filename); if (dir == null) { return(-1); } // FindFiles foreach (Gen::KeyValuePair <string, FsNode> node in dir.files) { files.Add(node.Value.info); } return(0); }
int DokanOperations.MoveFile(string filename, string newname, bool replace, DokanFileInfo info) { FsMountPoint mnt1 = CheckMountPoint(ref filename); FsMountPoint mnt2 = CheckMountPoint(ref newname); if (mnt1 == null) { return(-WinErrorCode.ERROR_FILE_NOT_FOUND); } if (mnt2 == null) { return(-WinErrorCode.ERROR_PATH_NOT_FOUND); } if (mnt1 == mnt2) { return(mnt1.FsOperation.MoveFile(filename, newname, replace, info)); } else { return(-WinErrorCode.ERROR_NOT_SAME_DEVICE); } }
int DokanOperations.GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { FsMountPoint mnt = CheckMountPoint(ref filename); if (mnt != null) { return(mnt.FsOperation.GetFileInformation(filename, fileinfo, info)); } FsFile file = GetFile(filename); if (file == null) { return(-1); } fileinfo.FileName = file.info.FileName; fileinfo.Length = file.info.Length; fileinfo.Attributes = file.info.Attributes; fileinfo.CreationTime = file.info.CreationTime; fileinfo.LastAccessTime = file.info.LastAccessTime; fileinfo.LastWriteTime = file.info.LastWriteTime; return(0); }