web-dev-qa-db-fra.com

Ouverture d'un fichier .pdf sous forme Windows via un clic sur le bouton

Sur la fenêtre actuelle que j'ai, j'ai un bouton. Je veux pouvoir cliquer sur le bouton et ouvrir un fichier .pdf qui se trouve dans le dossier des ressources de ce projet. Y a-t-il un désir facile de le faire?

Les autres méthodes que j'ai examinées utilisent des chemins de fichiers mais les chemins de fichiers peuvent ne pas être les mêmes tout le temps mais le fichier .pdf sera toujours dans le dossier des ressources. Existe-t-il un moyen d'y accéder et de l'ouvrir lorsque l'on clique sur le bouton?

Quelque chose dans le sens de?

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

Problème résolu avec

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

Avec instructions.pdf dans le dossier bin/debug où se trouve le programme.exe.

8
Jed5931

Pour ouvrir un fichier avec une visionneuse par défaut du système, vous devez appeler

System.Diagnostics.Process.Start(filename);

Mais je n'ai pas compris le problème avec un chemin de fichier. Si vous avez besoin d'un chemin d'accès relatif du fichier programme .exe vers un dossier contenant des ressources, vous pouvez ajouter "Ressources \" ou "..\Ressources \" (si le dossier Ressources est supérieur) à votre chemin de fichier.

Ou vous pouvez ajouter votre pdf à un projet en tant que ressource intégrée, puis, lorsque vous devez l'ouvrir, vous pouvez l'enregistrer dans un emplacement temporel à l'aide

Path.GetTempPath()

et l'ouvrir.

16
Artem

Si vous souhaitez ouvrir le fichier pdf à l'aide d'Adobe Reader ou d'une application similaire, vous pouvez utiliser la fonction Process.Start.

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

Cela se comportera lorsque vous cliquerez sur le fichier dans le dossier Windows. Si vous ne pouvez pas placer le chemin du fichier, vous pouvez copier le fichier de la ressource vers un dossier temporaire et utiliser ce chemin.

0
ali