コード例 #1
0
        private void PreviewFileFromPakEntryInfo(PakEntryInfo pakEntry)
        {
            using (var pr = new PakReader(pakEntry.PakFile))
            {
                switch (GetPreviewTypeFromFilename(pakEntry.EntryFilename))
                {
                case PreviewType.Text:
                    using (var ms = new MemoryStream(pr.GetFile(pakEntry.EntryFilename)))
                    {
                        var text = new StreamReader(ms).ReadToEnd();
                        ShowTextViewer(text);
                    }
                    break;

                case PreviewType.Html:
                    using (var ms = new MemoryStream(pr.GetFile(pakEntry.EntryFilename)))
                    {
                        try
                        {
                            var text = EncryptedHtml.DecodeToString(pakEntry.EntryFilename, ms);
                            ShowTextViewer(text);
                        }
                        catch {
                            // maybe not encrypted, show raw text
                            ms.Seek(0, SeekOrigin.Begin);
                            var text = new StreamReader(ms).ReadToEnd();
                            ShowTextViewer(text);
                        }
                    }
                    break;

                case PreviewType.Xml:
                    using (var ms = new MemoryStream(pr.GetFile(pakEntry.EntryFilename)))
                    {
                        var text = new StreamReader(new AionXmlStreamReader(ms, true)).ReadToEnd();
                        ShowTextViewer(text);
                    }
                    break;

                case PreviewType.Image:
                    using (var ms = new MemoryStream(pr.GetFile(pakEntry.EntryFilename)))
                    {
                        ShowImageViewer(ms);
                    }
                    break;

                case PreviewType.Cgf:
                    using (var ms = new MemoryStream(pr.GetFile(pakEntry.EntryFilename)))
                    {
                        ShowCgfViewer(new CgfLoader(ms));
                    }
                    break;

                default:
                    break;
                }
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: xvanick1/monono2
        private void PreviewFileFromFileInfo(FileInfo file)
        {
            switch (GetPreviewTypeFromFilename(file.Name))
            {
            case PreviewType.Pak:
            {
                var text = GetPakFileListing(file.FullName);
                ShowTextViewer(text);
            }
            break;

            case PreviewType.Text:
            {
                var text = File.ReadAllText(file.FullName);
                ShowTextViewer(text);
            }
            break;

            case PreviewType.Html:
            {
                using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
                {
                    var text = EncryptedHtml.DecodeToString(file.Name, fs);
                    ShowTextViewer(text);
                }
            }
            break;

            case PreviewType.Xml:
            {
                using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
                {
                    var text = new StreamReader(new AionXmlStreamReader(fs, true)).ReadToEnd();
                    ShowTextViewer(text);
                }
            }
            break;

            case PreviewType.Image:
            {
                using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
                {
                    ShowImageViewer(fs);
                }
            }
            break;

            case PreviewType.Cgf:
            {
                using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
                {
                    ShowCgfViewer(new CgfLoader(fs));
                }
            }
            break;

            default:
                // unknown
                break;
            }
        }