как открыть файл, такой как PDF, и т. д. "из" приложения Windows Form в C # - PullRequest
4 голосов
/ 29 июля 2010

Я хочу создать форму окна, содержащую ссылку, чтобы при нажатии пользователем на эту ссылку открывался файл с некоторым форматом (например, PDF-файл или HTML-файл), который добавлялся в ресурсы.он не будет открыт в форме, это означает, что файл будет открыт вне программы с Adobe Reader или другой программой.Как я могу это сделать?Спасибо

Ответы [ 2 ]

5 голосов
/ 29 июля 2010

Вам придется извлечь этот файл из ресурсов (я предполагаю, что мы говорим здесь о ресурсах, встроенных в сборку) в %temp%, а затем просто Process.Start(). Убедитесь, что извлеченный файл имеет правильное расширение.

3 голосов
/ 29 июля 2010

Вы можете сделать это, используя 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...