繁体   English   中英

我如何确定用OpenFileDialog打开的文本文件只是常规文本文件还是html内容?

[英]How can i be sure if a text file i open with OpenFileDialog is just regular text file or html content?

string filename = "";
private void openToolStripMenuItem1_Click(object sender, EventArgs e)
{
    OpenFileDialog theDialog = new OpenFileDialog();
    theDialog.Title = "Open Text File";
    theDialog.Filter = "TXT files|*.txt";
    theDialog.InitialDirectory = @"C:\";
    if (theDialog.ShowDialog() == DialogResult.OK)
    {
        lines = File.ReadAllLines(RecentFiles);
        filename = theDialog.FileName;
        if (!lines.Any(line => line.Equals(filename)))
        {
            recentfiles = new StreamWriter(RecentFiles, true);
            recentfiles.WriteLine(theDialog.FileName);
            recentfiles.Close();
        }

        items = File
                .ReadLines(RecentFiles)
                .Select(line => new ToolStripMenuItem()
                {
                    Text = line
                })
                .ToArray();
        recentFilesToolStripMenuItem.DropDownItems.Clear();
        recentFilesToolStripMenuItem.DropDownItems.AddRange(items);

        TextFileContentToRichtextbox(filename);
    }
}

当我打开文本文件并将其添加到richTextBox时,如果我先将网站页面源视图内容复制到文本文件,然后打开该文本文件,我怎么知道内容是html代码还是普通文本?

同样,当我直接粘贴到richTextBox窗口时,我想知道文本是html代码还是常规文本,然后决定如何继续。

如果要查看文件“外观”是否为HTML,则可以检查文本文件中是否存在某些HTML特定文本(“ <body> ”,...)。

如果要使用HTMLAgilityPack确保HTML有效,则可以执行以下操作:

string html = File.ReadAllText(path);
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);

if (htmlDoc.ParseErrors.Count() > 0)
{
   throw new InvalidOperationException("Not a valid HTML file");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM