10
votes

Ouvrir un fichier texte avec WPF

Il existe un fichier texte que j'ai créé dans mon dossier racine de projet. Maintenant, j'essaie d'utiliser processus.start () code> méthode pour lancer en externe ce fichier texte.

Le problème que j'ai ici est que le chemin de fichier est incorrect et processus.start () code> ne trouve pas ce fichier texte. Mon code est comme suit: p> xxx pré>

alors comment dois-je faire référence correctement à ce fichier texte? Puis-je utiliser le chemin relatif au lieu du chemin absolu? Merci. P>

EDIT: Si je change au-dessus du code à cela, cela fonctionnerait-il? P>

string path = Assembly.GetExecutingAssembly().Location;
Process.Start(path + "/ReadMe.txt");


1 commentaires

Vous devez vous assurer que le fichier est copié, vous ne pouvez pas utiliser processus.start pour les ressources intégrées. Vérifiez les propriétés et définissez l'attribut Copier sur le répertoire de sortie respectivement.


5 Réponses :


1
votes

Vous devez connaître le répertoire actuel si vous souhaitez utiliser un chemin relatif. xxx

Vous pouvez l'ajouter à votre chemin avec chemin avec chemin xxx


2 commentaires

Process.Start peut ouvrir à peu près n'importe quoi, il essaie d'utiliser l'application associée au fichier.


Si processstartinfo.useshelexecute est vrai, qui est la valeur par défaut.



16
votes

Windows doit savoir où trouver le fichier, vous avez donc besoin d'une manière d'une manière ou d'une autre, spécifiez-la:

Utilisation de la voie absolue: P>

var directory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
var file = Path.Combine(directory, "1.txt");
Process.Start(file);


2 commentaires

Si je fais cela, cela fonctionnerait-il? chemin de chaîne = assemblage.getexecutingassemblage (). Emplacement; Processus.start (chemin + "/readme.txt");


Si le fichier est dans le même répertoire que l'exécutable que oui. Cependant, vous feriez mieux d'utiliser path.combine au lieu d'une concaténation de chaîne. Également emplacement aura un nom de fichier à l'intérieur. Vous devez obtenir un répertoire uniquement.



1
votes

Essayez d'utiliser Application.StartuTutuTPath chemin comme chemin par défaut peut pointer sur le répertoire actuel.

Ce scénario a été expliqué sur des liens suivants ..

Environnement.CurrentDirectory en C # .NET

http://start-coding.blogspot.com/2008/12 /applicationStartuTutuPath.html


0 commentaires

2
votes

La façon dont vous faites cela va bien. Cela trouvera le fichier texte qui figure dans le même répertoire que votre EXE et il l'ouvrira avec l'application par défaut (probablement NOTEPAD.EXE). Voici plus d'exemples de comment faire ceci:

http://www.dotnetperls.com/process- Démarrez

Cependant, si vous souhaitez mettre un chemin dans, vous devez utiliser le chemin complet. Vous pouvez construire le chemin complet tout en vous souciant de la voie relative à l'aide de la méthode répertoriée dans ce message:

http://social.msdn.microsoft.com/forums/en-us/vbgeneral/thread/e763ae8c-1284-43fe-9e55 -4b36f8780f1c

Il ressemblerait à ceci: xxx

Ceci est pour ouvrir un fichier dans un dossier que vous ajoutez à votre projet appelé Ressources. Si vous le souhaitez dans votre racine de votre projet, déposez simplement le dossier Ressources dans les deux cordes ci-dessus et vous serez prêt à partir.


0 commentaires

0
votes

sur une boîte Windows:

Démarrer le bloc-notes avec l'emplacement du fichier immédiatement suivant. Gagnez P>

process.start("notepad C:\Full\Directory\To\File\FileName.txt");


0 commentaires