Example #1
0
        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);
        }
Example #2
0
        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();
            }
        }
Example #3
0
        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);
        }