private async Task <List <BitmapImage> > UnzipFileHelper(string uri) { List <BitmapImage> _images = new List <BitmapImage>(); StorageFile zipFile = await StorageFile.GetFileFromPathAsync(uri); Stream zipStream = await zipFile.OpenStreamForReadAsync(); using (ZipArchive zipArchive = new ZipArchive(zipStream, ZipArchiveMode.Read)) { int total = zipArchive.Entries.Count; int current = 0; foreach (var entry in zipArchive.Entries) { current++; using (var memStream = new MemoryStream()) { await entry.Open().CopyToAsync(memStream); memStream.Position = 0; BitmapImage image = new BitmapImage(); image.SetSource(memStream.AsRandomAccessStream()); _images.Add(image); } _extractProgress.Percent = current * 100 / total; _extractProgress.PercentString = string.Format("{0}%", _extractProgress.Percent); if (_extractProgress.Percent == 100) { _extractProgress.Hide(); } } } return(_images); }
private void progressChanged(DownloadOperation dowloadOperation) { var byteRecieved = dowloadOperation.Progress.BytesReceived; var byteTotal = dowloadOperation.Progress.TotalBytesToReceive; _progress.Percent = (int)(100 * byteRecieved / byteTotal); _progress.PercentString = string.Format("{0}%", _progress.Percent); _progress.PrimaryButtonText = "Close"; switch (_downloadOperation.Progress.Status) { case BackgroundTransferStatus.Idle: break; case BackgroundTransferStatus.Running: _progress.PrimaryButtonText = "Pause"; break; case BackgroundTransferStatus.PausedByApplication: case BackgroundTransferStatus.PausedCostedNetwork: _progress.PrimaryButtonText = "Resume"; break; case BackgroundTransferStatus.PausedNoNetwork: _progress.PercentString = "Network Error"; break; case BackgroundTransferStatus.Completed: _progress.PercentString = "Completed"; break; case BackgroundTransferStatus.Canceled: _progress.PercentString = "Canceled"; break; case BackgroundTransferStatus.Error: break; case BackgroundTransferStatus.PausedSystemPolicy: break; default: throw new ArgumentOutOfRangeException(); } if (_progress.Percent >= 100) { _progress.PercentString = "Download Completed"; _progress.Hide(); } }
public async Task <List <BitmapImage> > Extract(string Uri) { _progress.Title = "Reading ..."; _progress.ShowAsync(); int numOfFile = 0; List <BitmapImage> images = new List <BitmapImage>(); StorageFolder fd = await StorageFolder.GetFolderFromPathAsync(Uri); var fileList = await fd.GetFilesAsync(); int totalFile = fileList.Count; foreach (var storageFile in fileList) { if (storageFile.IsOfType(StorageItemTypes.File)) { numOfFile++; string mediaType = storageFile.ContentType.Split('/')[0]; if (mediaType == "image") { using (var stream = await storageFile.OpenAsync(FileAccessMode.Read)) { var bitmapImage = new BitmapImage(); await bitmapImage.SetSourceAsync(stream); images.Add(bitmapImage); } } _progress.Percent = numOfFile * 100 / totalFile; _progress.PercentString = string.Format("{0} / {1}", numOfFile, totalFile); if (_progress.Percent == 100) { _progress.Hide(); } } } return(images); }