我是C#的新手,并且我通常使用VB构建了Windows表单,并且能够使用一个代码打开我添加到"资源"中的任何嵌入式文件。就C#而言,我已经在网上查看了几个小时,但还没有找到任何有用的东西。请以任何方式提供帮助。
我有一个Windows表单,该表单将有一个单个按钮,该按钮将分配给我添加到" Resources"文件夹的特定文件。通常,我会使用以下代码具有 button_click 加载EXE,DOC或PDFILE。我正在寻找类似的c#。
的东西VB代码:
IO.File.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp & "IEResetConfigure.exe", My.Resources.IEResetConfigure)
Process.Start(My.Computer.FileSystem.SpecialDirectories.Temp & "IEResetConfigure.exe")
只需将您的资源文件写入临时目录并运行文件
using System;
using System.IO;
using System.Diagnostics;
// ...
byte[] resourceFile = Properties.Resources.Newspaper_PC_13_12_2013;
string destination = Path.Combine(Path.GetTempPath(), "Newspaper_PC_13_12_2013.pdf");
System.IO.File.WriteAllBytes(destination, resourceFile);
Process.Start(destination);
我的评论的示例
using System;
using System.IO;
using System.Diagnostics;
using System.Threading.Tasks;
// ...
static void Main(string[] args)
{
byte[] resourceFile = Properties.Resources.Newspaper_PC_13_12_2013;
string destination = Path.Combine(Path.GetTempPath(), "Newspaper_PC_13_12_2013.pdf");
File.WriteAllBytes(destination, resourceFile);
Process.Start(destination);
AutoDelete(2000, destination);
Console.Write("Press any key to quit . . . ");
Console.ReadKey(true);
}
static async void AutoDelete(int milliseconds, string destination)
{
while (File.Exists(destination))
{
await Task.Delay(milliseconds);
try
{
File.Delete(destination);
}
catch
{
continue;
}
}
}
对于任何仍在寻找的人来说,这是打开"嵌入"的一种方式文件。我希望有人以更好的方式在下面纠正我。
第一部分是确保您的文件已添加到bin debug文件夹中的项目中。然后,我使用此代码称其为
private void button1_Click(object sender, EventArgs e)
{
//Place file in .binDebug folder of project
string filename = "YourFileName.pdf";
System.Diagnostics.Process.Start(filename);
全面披露整个部分已从(通过单击按钮打开Windows表单中的.pdf文件)
然而,我确实遇到了一个问题,在第一个构建后对我不起作用的问题。因此,当我创建设置项目时,我添加了"项目输出"。然后在我的pdf中添加"添加文件"。到应用程序文件夹。
从那以后一直对我无瑕的工作。这是我在Stack Overflow上的第一篇文章,因此,请告诉我是否误解了任何规则或可以改进。谢谢,我希望这有所帮助!