public void Delete(CloudFile cloudFile) { string filePath = Path.Combine(this.rootPath, cloudFile.FullName()); if (File.Exists(filePath)) { File.Delete(filePath); } }
public virtual void Move(CloudFile source, string newPath) { var path = source.FullName(); var oldFolder = Path.GetDirectoryName(path); var newFolder = Path.GetDirectoryName(newPath); }
public Stream Read(CloudFile cloudFile, OnProgress onProgress) { string filePath = Path.Combine(this.rootPath, cloudFile.FullName().TrimStart('/')); var result = new FileStream(filePath, FileMode.Open, FileAccess.Read); cloudFile.Fingerprint = HashHelper.MD5(result); result.Position = 0; return result; }
public void Write(CloudFile cloudFile, Stream stream, OnProgress onProgress) { var path = Path.Combine(this.rootPath, cloudFile.FullName()); string directory = Path.GetDirectoryName(path); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } using (FileStream targetFileStream = new FileStream(path, FileMode.OpenOrCreate)) { stream.CopyTo(targetFileStream); } File.SetLastWriteTime(path, cloudFile.Timestamp); }
public void Write(CloudFile cloudFile, Stream stream, OnProgress onProgress) { logger.DebugFormat("7zip, start writing [{0}]", cloudFile.FullName()); cloudFile.Format = CloudFileFormat.SevenZip; //cloudFile.Fingerprint = HashHelper.MD5(cloudFile.Fingerprint + password); stream.Position = 0; // set the name into the package Dictionary<String, Stream> dir = new Dictionary<string, Stream>(); dir[cloudFile.Name] = stream; // drive low level provider to write data using (MemoryStream compressedStream = new MemoryStream()) { SevenZipCompressor compressor = new SevenZipCompressor(); compressor.Compressing += new EventHandler<ProgressEventArgs>( (o, p) => { onProgress(cloudFile, ProcessTypes.Compress, (p.PercentDone * stream.Length / 100), stream.Length); logger.InfoFormat("Compressing [{0}], [{1}% of {2}MB]", cloudFile.Name, p.PercentDone, (int)(stream.Length / 1024 / 1024)); }); compressor.CompressStreamDictionary(dir, compressedStream, password); compressedStream.Position = 0; cloudFile.MD5 = cloudFile.Fingerprint; cloudFile.Fingerprint = HashHelper.MD5(cloudFile.Fingerprint+password); provider.Write(cloudFile, compressedStream, onProgress); } logger.DebugFormat("7zip, finish writing [{0}]", cloudFile.FullName()); }