首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C#检查文件是否为有效的XPS文件?

如何使用C#检查文件是否为有效的XPS文件?
EN

Stack Overflow用户
提问于 2012-04-14 01:10:13
回答 2查看 952关注 0票数 1

我有一个处理XPS文件的WinForms应用程序。如何使用C#检查用户在打开的对话框中选择的文件是否为有效的XPS文件?

将存在扩展名为.XPS的文件,这些文件实际上不是XPS文件。

由于XPS文件实际上是PKZIP格式的,所以我可以检查PKZIP字节签名,但这会对ZIP存档产生误报。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-14 15:03:02

下面将XPS文件与其他ZIP存档和非ZIP文件区分开来。它不会确定文件是否是完全有效的XPS,因此您需要加载每个页面。

代码语言:javascript
复制
using System;
using System.IO;
using System.Windows.Xps.Packaging;

class Tester
{
    public static bool IsXps(string filename)
    {
        try
        {
            XpsDocument x = new XpsDocument(filename, FileAccess.Read);

            IXpsFixedDocumentSequenceReader fdsr = x.FixedDocumentSequenceReader;

            // Needed to actually try to find the FixedDocumentSequence
            Uri uri = fdsr.Uri;

            return true;
        }
        catch (Exception)
        {
        }

        return false;
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-04-14 01:14:08

您可以检查文件的内容类型,而不是文件扩展名。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10145247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档