'Opening a .pdf file in windows form through a button click

On the current window that I have, I have a button. I want to be able to click the button and open up a .pdf file which is in the resources folder of this project. Is there an easy want to do this?

The other methods I've looked at uses filepaths but the filepaths may not be the same all the time but the .pdf file will be in the resources folder at all times. Is there a way to access this and open it when the button is clicked?

Anything along the lines of?

string filename = "instructions.pdf";
file.open();

Problem solved with

private void Button1_Click(object sender, EventArgs e)
{
    string filename = "instructions.pdf";
    System.Diagnostics.Process.Start(filename);
}

With instructions.pdf in the bin/debug folder where the program.exe is.



Solution 1:[1]

To open a file with a system default viewer you need call

System.Diagnostics.Process.Start(filename);

But I haven't understood the problem with a filepath. If you need a relative path from the program .exe file to a folder with resources, then you can add "Resources\" or "..\Resources\" (if Resources folder is higher) to your filepath.

Or you can add your pdf to a project as an embedded resource and then, when you need to open it, you can save it to some temporal location using

Path.GetTempPath()

and open it.

Solution 2:[2]

If you want to open the pdf file using Adobe Reader or similar application, you can use Process.Start function.

ProcessStartInfo startInfo = new ProcessStartInfo("pathtofile");
Process.Start(startInfo);

This will behave as you clicked on the file in Windows folder. If you cannot place the file path, then you can copy file from resource to a temporary folder and use that path.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Mafii