コード例 #1
0
        internal Stream OpenWrite(string virtualPath, WriteMode mode)
        {
            Action <byte[]> onClose = (data) => ConnectedClient.WriteAllBytes(virtualPath, data);

            if (mode == WriteMode.Truncate)
            {
                ConnectedClient.DeleteFile(virtualPath);
                return(new InMemory.InMemoryStream(onClose));
            }
            else if (mode == WriteMode.Overwrite)
            {
                return(new InMemory.InMemoryStream(onClose));
            }
            else
            {
                var bytes = default(byte[]);
                using (var readStream = GetStream(virtualPath))
                {
                    bytes = StreamExtensions.ReadStreamToEnd(readStream);
                }
                var stream = new InMemory.InMemoryStream(onClose, bytes);
                stream.Seek(stream.Length, System.IO.SeekOrigin.Begin);
                return(stream);
            }
        }
コード例 #2
0
        internal Stream OpenWrite(string virtualPath, string fileName, WriteMode mode)
        {
            Action <byte[]> onClose = (data) => Client.UploadFile(virtualPath, fileName, data);

            if (mode == WriteMode.Truncate)
            {
                return(new InMemory.InMemoryStream(onClose));
            }
            else
            {
                var bytes  = GetBytes(CombineVirtualPath(virtualPath, fileName));
                var stream = new InMemory.InMemoryStream(onClose, bytes);
                if (mode == WriteMode.Append)
                {
                    stream.Seek(stream.Length, System.IO.SeekOrigin.Begin);
                }
                return(stream);
            }
        }
コード例 #3
0
 public override Stream OpenWrite(WriteMode mode)
 {
     if (mode == WriteMode.Truncate)
     {
         // ! Workaround
         // if don't read before truncate, we get "a invalid stored block lengths" Exception from Ionic.Zip when reading after
         this.ReadAllBytes();
         return new InMemory.InMemoryStream(ReplaceBytes);
     }
     else
     {
         var bytes = this.ReadAllBytes();
         var stream = new InMemory.InMemoryStream(ReplaceBytes, bytes);
         if (mode == WriteMode.Append)
         {
             stream.Seek(stream.Length, System.IO.SeekOrigin.Begin);
         }
         return stream;
     }
 }
コード例 #4
0
 public override Stream OpenWrite(WriteMode mode)
 {
     if (mode == WriteMode.Truncate)
     {
         // ! Workaround
         // if don't read before truncate, we get "a invalid stored block lengths" Exception from Ionic.Zip when reading after
         this.ReadAllBytes();
         return(new InMemory.InMemoryStream(ReplaceBytes));
     }
     else
     {
         var bytes  = this.ReadAllBytes();
         var stream = new InMemory.InMemoryStream(ReplaceBytes, bytes);
         if (mode == WriteMode.Append)
         {
             stream.Seek(stream.Length, System.IO.SeekOrigin.Begin);
         }
         return(stream);
     }
 }
コード例 #5
0
        internal Stream OpenWrite(string virtualPath, string fileName, WriteMode mode)
        {
            Action<byte[]> onClose = (data) => Client.UploadFile(virtualPath, fileName, data);

            if (mode == WriteMode.Truncate)
            {
                return new InMemory.InMemoryStream(onClose);
            }
            else
            {
                var bytes = GetBytes(CombineVirtualPath(virtualPath, fileName));
                var stream = new InMemory.InMemoryStream(onClose, bytes);
                if (mode == WriteMode.Append)
                {
                    stream.Seek(stream.Length, System.IO.SeekOrigin.Begin);
                }
                return stream;
            }
        }
コード例 #6
0
        internal Stream OpenWrite(string virtualPath, WriteMode mode)
        {
            Action<byte[]> onClose = (data) => ConnectedClient.WriteAllBytes(virtualPath, data);

            if (mode == WriteMode.Truncate)
            {
                ConnectedClient.DeleteFile(virtualPath);
                return new InMemory.InMemoryStream(onClose);
            }
            else if (mode == WriteMode.Overwrite)
            {
                return new InMemory.InMemoryStream(onClose);
            }
            else
            {
                var bytes = default(byte[]);
                using(var readStream = GetStream(virtualPath))
                {
                    bytes = StreamExtensions.ReadStreamToEnd(readStream);
                }
                var stream = new InMemory.InMemoryStream(onClose, bytes);
                stream.Seek(stream.Length, System.IO.SeekOrigin.Begin);
                return stream;
            }
        }