Вы можете сделать это, используя Process.Start
:
System.Diagnostics.Process.Start(@"C:\myfolder\document.pdf");
Если файл является встроенным ресурсом, вам сначала необходимо извлечь его и сохранить на диске.Вы не можете открыть документ из потока напрямую, потому что сторонние приложения не смогут получить доступ к памяти вашего процесса:
string resourceName = "test.pdf";
string filename = Path.Combine(Path.GetTempPath(), resourceName);
Assembly asm = typeof(Program).Assembly;
using (Stream stream = asm.GetManifestResourceStream(
asm.GetName().Name + "." + resourceName))
{
using (Stream output = new FileStream(filename,
FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = new byte[32 * 1024];
int read;
while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, read);
}
}
}
Process.Start(filename);