C# 只允许上载pdf文件

C# 只允许上载pdf文件,c#,winforms,C#,Winforms,我的windows窗体应用程序中有一个浏览按钮,我只想筛选到选择pdf文件的选项。因此,在浏览文件窗口中,只有pdf文件可见,而不显示.doc或任何类型的文档格式 private void btnSelectFile_Click(object sender, EventArgs e) { var dlg = new OpenFileDialog(); var res = dlg.ShowDialog(); if (res == Dialog

我的windows窗体应用程序中有一个浏览按钮,我只想筛选到选择pdf文件的选项。因此,在浏览文件窗口中,只有pdf文件可见,而不显示.doc或任何类型的文档格式

private void btnSelectFile_Click(object sender, EventArgs e)
    {
        var dlg = new OpenFileDialog();
        var res = dlg.ShowDialog();
        if (res == DialogResult.OK)
        {
            DocumentUNCPath.Text = dlg.FileName;
        }
    }

首先,您需要先将过滤器应用于
OpenFileDialog
,例如:

dlg.Filter = "PDF Files|*.pdf";
然而,这并不能阻止他们强制通过一个文件(他们可以这样做)。您可以在他们单击“确定”后再次检查文件名,但这不能保证您获得的文件将是PDF

为了安全起见,您可以在本地或服务器端使用PDF库来尝试打开PDF文件,看看它是否真的是这样。

您希望使用的属性

|
左侧的部分可以是任何内容,我刚才给了您一个示例,但它是显示给用户的内容。
|
右侧的部分是实际的Windows筛选器。

添加以下内容:

dlg.Filter = "PDF files|*.pdf";

您需要在
dlg
对象上设置filter属性,如下所示:

var dlg = new OpenFileDialog();
dlg.Filter = "*.pdf";
var res = dlg.ShowDialog();
if (res == DialogResult.OK)
{
    DocumentUNCPath.Text = dlg.FileName;
}

这是一个重复的问题。请参阅此处的答案和解释。
var dlg = new OpenFileDialog();
dlg.Filter = "*.pdf";
var res = dlg.ShowDialog();
if (res == DialogResult.OK)
{
    DocumentUNCPath.Text = dlg.FileName;
}