3

我在 Resources 中添加了 help.txt 文件作为文本文件,并且这样做了:

private void helpButton_Click(object sender, MouseEventArgs e)
{
    System.Diagnostics.Process.Start(myProject.Properties.Resources.help);
}

它没有用,然后我尝试了这种方式:

private void helpButton_Click(object sender, MouseEventArgs e)
{
    System.Diagnostics.Process.Start(@"help.txt");
}

它也不起作用,但是这样起作用:

private void helpButton_Click(object sender, MouseEventArgs e)
    {
        System.Diagnostics.Process.Start(@"C:\Projects\CourceWork\Resources\help.txt");
    }

问题是我不想处理这个硬核定义的路径,我该怎么办?

4

2 回答 2

3

您似乎想使用与.txt文件关联的默认程序(通常是记事本)打开嵌入式资源。不幸的是,记事本无法读取嵌入式资源。因此,您需要提取资源并将其保存为磁盘上的文件,然后使用该文件打开记事本。

var helpFile = Path.Combine(Path.GetTempPath(), "help.txt");
File.WriteAllText(helpFile, myProject.Properties.Resources.help);
Process.Start(helpFile);

或者,您可以创建自己的Form显示文本,在我看来这将是一个更好的解决方案(除非您的帮助文件不是很容易显示,例如 PDF 文件)。

于 2012-10-15T16:14:38.680 回答
0

如果您想在默认文本编辑器中从代码中打开 .txt 文件,那么您应该首先重新考虑将其放在资源中,但将其放在项目的同一目录或易于检索的目录中,例如我的文件。

于 2012-10-15T16:28:45.543 回答