protected internal override void DoRefresh(FileSystemSessionItem item) { var fsh = item.Handle as FSH; if (fsh==null) return; var fsi = fsh.m_Info; fsi.Refresh(); }
protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item) { WebDAV.Item wdItem = GetSVNItem(item); return wdItem.LastModificationDate; }
protected internal override void DoDeleteItem(FileSystemSessionItem item) { throw new NotImplementedException(); }
protected internal override ulong DoGetItemSize(FileSystemSessionItem item) { var s3session = (S3V4FileSystemSession)item.Session; var handle = item.Handle as S3V4FSH; FileSystemFile file = item as FileSystemFile; if (file != null) { IDictionary<string, string> metaHeaders = S3V4.GetItemMetadata(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs); return (ulong)metaHeaders["Content-Length"].AsLong(); } FileSystemDirectory dir = item as FileSystemDirectory; if (dir != null) { ulong size = 0; foreach( S3V4ListBucketItem subItem in getSubitemNames( dir, true).Where(si => !si.IsFolder)) { size += subItem.Size; } return size; } throw new NFXException(NFX.Web.StringConsts.ARGUMENT_ERROR + this.GetType().Name + ".DoGetItemSize(item is FileSystemFile or FileSystemDirectory)"); }
protected internal override bool DoGetReadOnly(FileSystemSessionItem item) { return GetHandle(item).IsReadOnly; }
protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item) { return GetHandle(item).ModifiedDate; }
protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName) { var session = GetSession(item); var handle = GetHandle(item); session.Client.Rename(handle.Id, newName); return true; }
private static GoogleDriveHandle GetHandle(FileSystemSessionItem item) { return((GoogleDriveHandle)item.Handle); }
protected internal override bool DoGetReadOnly(FileSystemSessionItem item) { return(GetHandle(item).IsReadOnly); }
protected internal override DateTime?DoGetModificationTimestamp(FileSystemSessionItem item) { return(GetHandle(item).ModifiedDate); }
private SVNFSH GetSVNFSH(FileSystemSessionItem item) { return(item.Handle as SVNFSH); }
private WebDAV.Item GetSVNItem(FileSystemSessionItem item) { return(GetSVNFSH(item).Item); }
protected internal override DateTime?DoGetModificationTimestamp(FileSystemSessionItem item) { WebDAV.Item wdItem = GetSVNItem(item); return(wdItem.LastModificationDate); }
protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action <FileSystemStream> disposeAction) { throw new NotImplementedException(); }
protected internal override bool DoGetReadOnly(FileSystemSessionItem item) { return true; }
private SVNFSH GetSVNFSH(FileSystemSessionItem item) { return item.Handle as SVNFSH; }
private static GoogleDriveSession GetSession(FileSystemSessionItem item) { return((GoogleDriveSession)item.Session); }
protected internal override ulong DoGetItemSize(FileSystemSessionItem item) { var session = (GoogleDriveSession)item.Session; var handle = (GoogleDriveHandle)item.Handle; var client = session.Client; if (!handle.IsFolder) { return handle.Size; } else if (item is FileSystemDirectory) { var files = client.GetFiles(handle.Id, recursive: true); var size = 0ul; foreach (var file in files) { size += file.Size; } return size; } throw new NFXException(NFX.Web.StringConsts.ARGUMENT_ERROR + this.GetType().Name + ".DoGetItemSize(item is FileSystemFile or FileSystemDirectory)"); }
protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName) { throw new NotImplementedException(); }
protected internal override void DoSetModificationTimestamp(FileSystemSessionItem item, DateTime timestamp) { var session = GetSession(item); var handle = GetHandle(item); session.Client.SetModifiedDate(handle.Id, timestamp); handle.ModifiedDate = timestamp; }
protected internal override DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item) { throw new NotImplementedException(); }
private static GoogleDriveHandle GetHandle(FileSystemSessionItem item) { return (GoogleDriveHandle)item.Handle; }
protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp) { throw new NotImplementedException(); }
protected internal override void DoDeleteItem(FileSystemSessionItem item) { var s3session = (S3V4FileSystemSession)item.Session; var handle = (S3V4FSH)item.Handle; FileSystemFile file = item as FileSystemFile; if (file != null) { S3V4.RemoveItem(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs); return; } FileSystemDirectory dir = item as FileSystemDirectory; if (dir != null) { // reverse order to get children prior to parents foreach( S3V4ListBucketItem subItem in getSubitemNames( dir, true).Reverse()) { string subItemPath = CombinePaths( handle.Path, subItem.Key); S3V4.RemoveItem(subItemPath, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs); } S3V4.RemoveFolder(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs); return; } }
protected internal override bool DoGetReadOnly(FileSystemSessionItem item) { return(false); }
protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item) { var s3session = (S3V4FileSystemSession)item.Session; var handle = item.Handle as S3V4FSH; var metaHeaders = S3V4.GetItemMetadata(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs); return metaHeaders["Last-Modified"].AsDateTime(); }
protected internal override void DoSetReadOnly(FileSystemSessionItem item, bool readOnly) { throw new NotImplementedException(); }
protected internal override ulong DoGetItemSize(FileSystemSessionItem item) { var wdItem = GetSVNItem(item); var file = wdItem as WebDAV.File; if (file != null) return file.Size; var dir = wdItem as WebDAV.Directory; if (dir != null) return GetDirectorySize(dir); throw new NFXException(NFX.Web.StringConsts.ARGUMENT_ERROR + this.GetType().Name + ".DoGetItemSize(item is FileSystemFile or FileSystemDirectory)"); }
protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action <FileSystemStream> disposeAction) { return(null); }
protected internal override FileSystemStream DoGetPermissionsStream(FileSystemSessionItem item, Action<FileSystemStream> disposeAction) { throw new NotImplementedException(); }
protected internal override DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item) { var fsi = ((FSH)item.Handle).m_Info; return(fsi.LastAccessTimeUtc); }
protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp) { var fsi = ((FSH)item.Handle).m_Info; fsi.LastAccessTimeUtc = timestamp; }
private WebDAV.Item GetSVNItem(FileSystemSessionItem item) { return GetSVNFSH(item).Item; }
protected internal override bool DoGetReadOnly(FileSystemSessionItem item) //Windows does not support ReadOnly directories { var fi = ((FSH)item.Handle).m_Info as FileInfo; return(fi != null ? fi.IsReadOnly : false); }
protected internal override void DoDeleteItem(FileSystemSessionItem item) { var session = GetSession(item); var handle = GetHandle(item); session.Client.Delete(handle.Id); }
protected internal override ulong DoGetItemSize(FileSystemSessionItem item) { var fsi = ((FSH)item.Handle).m_Info; if (fsi is DirectoryInfo) { var result = 0ul; var di = fsi as DirectoryInfo; var files = di.GetFiles("*.*", SearchOption.AllDirectories); foreach(var file in files) result += (ulong)file.Length; return result; } else return (ulong)((FileInfo)fsi).Length; }
protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action<FileSystemStream> disposeAction) { return null; }
protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item) { var fsi = ((FSH)item.Handle).m_Info; return fsi.LastWriteTimeUtc; }
protected internal override DateTime? DoGetLastAccessTimestamp(FileSystemSessionItem item) { throw new NotImplementedException(); }
//Windows does not support ReadOnly directories protected internal override bool DoGetReadOnly(FileSystemSessionItem item) { var fi = ((FSH)item.Handle).m_Info as FileInfo; return fi!=null ? fi.IsReadOnly : false; }
protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName) { var fsi = ((FSH)item.Handle).m_Info; if (fsi is FileInfo) { File.Move(fsi.FullName, Path.Combine(((FileInfo)fsi).DirectoryName, newName) ); return true; } if (fsi is DirectoryInfo) { Directory.Move(fsi.FullName, Path.Combine(((DirectoryInfo)fsi).Parent.FullName, newName) ); return true; } return false; }
protected internal override void DoSetModificationTimestamp(FileSystemSessionItem item, DateTime timestamp) { var fsi = ((FSH)item.Handle).m_Info; fsi.LastWriteTimeUtc = timestamp; }
private static GoogleDriveSession GetSession(FileSystemSessionItem item) { return (GoogleDriveSession)item.Session; }
//Windows does not support ReadOnly directories protected internal override void DoSetReadOnly(FileSystemSessionItem item, bool readOnly) { var fi = ((FSH)item.Handle).m_Info as FileInfo; if (fi!=null) fi.IsReadOnly = readOnly; }