/// <summary> /// TODO /// </summary> /// <param name="item"></param> /// <param name="form"></param> /// <returns></returns> public async Task DeleteFile(FSItem item, Tools.ProgressForm form) { form.Activity = Utility.ShortenString(item.Path, 20); await amazon.Nodes.Trash(item.Id, item.IsDir); CacheStorage.RemoveItem(item); }
/// <summary> /// TODO /// </summary> /// <param name="item"></param> /// <param name="dest"></param> /// <param name="form"></param> /// <param name="wh"></param> /// <param name="progress"></param> /// <param name="totalsize"></param> /// <returns></returns> public async Task <long> DownloadFile(FSItem item, string dest, Tools.ProgressForm form, EventWaitHandle wh, long progress, long totalsize) { if (item.IsDir) { form.Activity = string.Format("{0} {1})", "Creating directory", Utility.ShortenString(dest, 20)); Directory.CreateDirectory(dest); return(progress); } using (var fs = new FileStream(dest, FileMode.Create)) { await amazon.Files.Download(item.Id, fs, null, null, 4096, (long position) => { wh.WaitOne(); if (form.IsClosed) { fs.Dispose(); try { File.Delete(dest); } catch { } throw new TaskCanceledException(); } form.Activity = Progress.GetActivityProgress(dest, position, item.Length, progress + position, totalsize); form.SetProgressValue(progress + position, totalsize); return(position); }); return(progress + item.Length); } }