コード例 #1
0
        private async Task LoadTextFromFileWithEncoding(FileSystemStorageFile File, Encoding Enco)
        {
            LoadingControl.IsLoading = true;
            await Task.Delay(500);

            try
            {
                using (FileStream Stream = await File.GetFileStreamFromFileAsync(AccessMode.Read))
                    using (StreamReader Reader = new StreamReader(Stream, Enco, false))
                    {
                        EditText.Text = await Reader.ReadToEndAsync();
                    }
            }
            catch (Exception ex)
            {
                LogTracer.Log(ex, "Could not load the content in file");

                QueueContentDialog Dialog = new QueueContentDialog
                {
                    Title           = Globalization.GetString("Common_Dialog_ErrorTitle"),
                    Content         = Globalization.GetString("QueueDialog_CouldReadWriteFile_Content"),
                    CloseButtonText = Globalization.GetString("Common_Dialog_CloseButton")
                };

                await Dialog.ShowAsync();
            }

            await Task.Delay(500);

            LoadingControl.IsLoading = false;
        }
コード例 #2
0
        /// <summary>
        /// 异步获取音乐封面
        /// </summary>
        /// <returns>艺术家名称</returns>
        private async Task <BitmapImage> GetMusicCoverAsync()
        {
            try
            {
                using (FileStream FileStream = await MediaFile.GetFileStreamFromFileAsync(AccessMode.Read))
                    using (var TagFile = TagLib.File.Create(new StreamFileAbstraction(MediaFile.Name, FileStream, FileStream)))
                    {
                        if (TagFile.Tag.Pictures != null && TagFile.Tag.Pictures.Length != 0)
                        {
                            byte[] ImageData = TagFile.Tag.Pictures[0].Data.Data;

                            if (ImageData != null && ImageData.Length != 0)
                            {
                                using (MemoryStream ImageStream = new MemoryStream(ImageData))
                                {
                                    BitmapImage Bitmap = new BitmapImage
                                    {
                                        DecodePixelHeight = 250,
                                        DecodePixelWidth  = 250
                                    };

                                    await Bitmap.SetSourceAsync(ImageStream.AsRandomAccessStream());

                                    return(Bitmap);
                                }
                            }
                            else
                            {
                                return(null);
                            }
                        }
                        else
                        {
                            return(null);
                        }
                    }
            }
            catch
            {
                return(null);
            }
        }
コード例 #3
0
        private async Task <Encoding> DetectEncodingFromFileAsync()
        {
            try
            {
                using (FileStream DetectStream = await TextFile.GetFileStreamFromFileAsync(AccessMode.Read).ConfigureAwait(true))
                {
                    return(await Task.Run(() =>
                    {
                        using (StreamReader Reader = new StreamReader(DetectStream, Encoding.Default, true))
                        {
                            Reader.Read();

                            return Reader.CurrentEncoding;
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                LogTracer.Log(ex, "Could not detect the encoding of file");
                return(null);
            }
        }