示例#1
0
 protected internal override void DoRefresh(FileSystemSessionItem item)
 {
   var fsh = item.Handle as FSH;
   if (fsh==null) return;
   var fsi = fsh.m_Info;
   fsi.Refresh();
 }
示例#2
0
 protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     WebDAV.Item wdItem = GetSVNItem(item);
     return wdItem.LastModificationDate;
 }
示例#3
0
 protected internal override void DoDeleteItem(FileSystemSessionItem item)
 {
     throw new NotImplementedException();
 }
示例#4
0
        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)");
        }
示例#5
0
 protected internal override void DoDeleteItem(FileSystemSessionItem item)
 {
     throw new NotImplementedException();
 }
示例#6
0
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
   return GetHandle(item).IsReadOnly;
 }
示例#7
0
 protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item)
 {
   return GetHandle(item).ModifiedDate;
 }
示例#8
0
      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;
      }
示例#9
0
 private static GoogleDriveHandle GetHandle(FileSystemSessionItem item)
 {
     return((GoogleDriveHandle)item.Handle);
 }
示例#10
0
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
     return(GetHandle(item).IsReadOnly);
 }
示例#11
0
 protected internal override DateTime?DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     return(GetHandle(item).ModifiedDate);
 }
示例#12
0
 private SVNFSH GetSVNFSH(FileSystemSessionItem item)
 {
     return(item.Handle as SVNFSH);
 }
示例#13
0
 private WebDAV.Item GetSVNItem(FileSystemSessionItem item)
 {
     return(GetSVNFSH(item).Item);
 }
示例#14
0
 protected internal override DateTime?DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     WebDAV.Item wdItem = GetSVNItem(item);
     return(wdItem.LastModificationDate);
 }
示例#15
0
 protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action <FileSystemStream> disposeAction)
 {
     throw new NotImplementedException();
 }
示例#16
0
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
     return true;
 }
示例#17
0
 private SVNFSH GetSVNFSH(FileSystemSessionItem item)
 {
     return item.Handle as SVNFSH;
 }
示例#18
0
 private static GoogleDriveSession GetSession(FileSystemSessionItem item)
 {
     return((GoogleDriveSession)item.Session);
 }
示例#19
0
      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)");
      }
示例#20
0
 protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName)
 {
     throw new NotImplementedException();
 }
示例#21
0
      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;
      }
示例#22
0
 protected internal override DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item)
 {
     throw new NotImplementedException();
 }
示例#23
0
 private static GoogleDriveHandle GetHandle(FileSystemSessionItem item)
 {
     return (GoogleDriveHandle)item.Handle;
 }
示例#24
0
 protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp)
 {
     throw new NotImplementedException();
 }
示例#25
0
        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;
            }
        }
示例#26
0
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
     return(false);
 }
示例#27
0
        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();
        }
示例#28
0
 protected internal override void DoSetReadOnly(FileSystemSessionItem item, bool readOnly)
 {
     throw new NotImplementedException();
 }
示例#29
0
        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)");
        }
示例#30
0
 protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action <FileSystemStream> disposeAction)
 {
     return(null);
 }
示例#31
0
 protected internal override FileSystemStream DoGetPermissionsStream(FileSystemSessionItem item, Action<FileSystemStream> disposeAction)
 {
     throw new NotImplementedException();
 }
示例#32
0
        protected internal override DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item)
        {
            var fsi = ((FSH)item.Handle).m_Info;

            return(fsi.LastAccessTimeUtc);
        }
示例#33
0
 protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName)
 {
     throw new NotImplementedException();
 }
示例#34
0
        protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp)
        {
            var fsi = ((FSH)item.Handle).m_Info;

            fsi.LastAccessTimeUtc = timestamp;
        }
示例#35
0
 private WebDAV.Item GetSVNItem(FileSystemSessionItem item)
 {
     return GetSVNFSH(item).Item;
 }
示例#36
0
        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);
        }
示例#37
0
      protected internal override void DoDeleteItem(FileSystemSessionItem item)
      {
        var session = GetSession(item);
        var handle = GetHandle(item);

        session.Client.Delete(handle.Id);
      }
示例#38
0
        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;
        }
示例#39
0
 protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action<FileSystemStream> disposeAction)
 {
   return null;
 }
示例#40
0
 protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     var fsi = ((FSH)item.Handle).m_Info;
     return fsi.LastWriteTimeUtc;
 }
示例#41
0
 protected internal override DateTime? DoGetLastAccessTimestamp(FileSystemSessionItem item)
 {
   throw new NotImplementedException();
 }
示例#42
0
 //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;
 }
示例#43
0
 protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp)
 {
   throw new NotImplementedException();
 }
示例#44
0
        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;
        }
示例#45
0
 protected internal override void DoSetReadOnly(FileSystemSessionItem item, bool readOnly)
 {
   throw new NotImplementedException();
 }
示例#46
0
 protected internal override void DoSetModificationTimestamp(FileSystemSessionItem item, DateTime timestamp)
 {
     var fsi = ((FSH)item.Handle).m_Info;
     fsi.LastWriteTimeUtc = timestamp;
 }
示例#47
0
 private static GoogleDriveSession GetSession(FileSystemSessionItem item)
 {
     return (GoogleDriveSession)item.Session;
 }
示例#48
0
 //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;
 }