コード例 #1
0
        public static async Task <IBook> GetBookFromFile(Windows.Storage.IStorageFile file)
        {
            if (file == null)
            {
                return(null);
            }
            else if (Path.GetExtension(file.Path).ToLower() == ".pdf")
            {
                var book = new Books.Pdf.PdfBook();
                try
                {
                    await book.Load(file);
                }
                catch { return(null); }
                if (book.PageCount <= 0)
                {
                    return(null);
                }
                return(book);
            }
            else if (new string[] { ".zip", ".cbz" }.Contains(Path.GetExtension(file.Path).ToLower()))
            {
                var book = new Books.Cbz.CbzBook();
                try
                {
                    await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync()));
                }
                catch
                {
                    return(null);
                }
                if (book.PageCount <= 0)
                {
                    return(null);
                }
                return(book);
            }
            else if (new string[] { ".rar", ".cbr", ".7z", ".cb7" }.Contains(Path.GetExtension(file.Path).ToLower()))
            {
                var book = new Books.Compressed.CompressedBook();
                try
                {
                    await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync()));
                }
                catch
                {
                    return(null);
                }
                if (book.PageCount <= 0)
                {
                    return(null);
                }
                return(book);
            }

            return(null);
        }
コード例 #2
0
ファイル: BookManager.cs プロジェクト: kurema/BookViewerApp
        public async static Task<IBook> GetBookFromFile(Windows.Storage.IStorageFile file)
        {
            if (file == null) { return null; }
            else if (Path.GetExtension(file.Path).ToLower() == ".pdf")
            {
                var book = new Books.Pdf.PdfBook();
                await book.Load(file);
                return book;
            }
            else if (new string[] { ".zip", ".cbz" }.Contains(Path.GetExtension(file.Path).ToLower()))
            {
                var book = new Books.Cbz.CbzBook();
                await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync()));
                return book;
            }
            else if (new string[] { ".rar", ".cbr" }.Contains(Path.GetExtension(file.Path).ToLower()))
            {
                var book = new Books.Compressed.CompressedBook();
                await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync()));
                return book;
            }

            return null;
        }