Je souhaite lire la première ligne d'un fichier texte que j'ai ajouté au répertoire racine de mon projet. Cela signifie que mon explorateur de solutions affiche le fichier .txt à côté de mes fichiers .cs dans mon projet.
Alors, j'ai essayé de faire:
TextReader tr = new StreamReader(@"myfile.txt");
string myText = tr.ReadLine();
Mais cela ne fonctionne pas car il fait référence au dossier Bin et mon fichier n'y est pas ... Comment puis-je faire fonctionner cela? : /
Merci
Réponses:
Dans l'Explorateur de solutions, faites un clic droit sur myfile.txt et choisissez "Propriétés"
À partir de là, définissez le
Build Action
tocontent
etCopy to Output Directory
sur soitCopy always
ouCopy if newer
la source
Embedded Resource
et lisez l'article sur la lecture de la ressource intégrée blogs.msdn.com/b/nikola/archive/2008/05/14/…Vous pouvez utiliser ce qui suit pour obtenir le répertoire racine d'un projet de site Web:
Ou vous pouvez obtenir le répertoire de base comme ceci:
la source
Ajoutez un fichier de ressources à votre projet (clic droit sur Projet-> Propriétés-> Ressources). Là où il est dit "chaînes", vous pouvez passer en "fichiers". Choisissez "Ajouter une ressource" et sélectionnez votre fichier.
Vous pouvez désormais référencer votre fichier via la
Properties.Resources
collection.la source
La méthode ci-dessus vous apportera quelque chose comme ceci:
De là, vous pouvez naviguer vers l'arrière en utilisant System.IO.Directory.GetParent:
1 fois vous amènera à \ bin, 2 fois vous amèneront à \ myProjectNamespace, donc ce serait comme ceci:
Eh bien, maintenant vous avez quelque chose comme "C: \ Users \ myuser \ Documents \ Visual Studio 2015 \ Projects \ myProjectNamespace", alors attachez simplement le chemin final à votre nom de fichier, par exemple:
J'espère que ça aide.
la source
Vous pouvez également l'inclure (action de construction définie sur
Resource
), voici comment le récupérer à partir de là:(Quelques codes tirés de cette réponse de Charles )
la source
Vous devez utiliser le chemin absolu dans ce cas. Mais si vous définissez le
CopyToOutputDirectory = CopyAlways
, cela fonctionnera comme vous le faites.la source
Dans ce code, vous accédez au
root
projet de répertoire:puis:
la source