Quero ler a primeira linha de um arquivo de texto que adicionei ao diretório raiz do meu projeto. Ou seja, meu explorador de soluções está mostrando o arquivo .txt junto com meus arquivos .cs no meu projeto.
Então, tentei fazer:
TextReader tr = new StreamReader(@"myfile.txt");
string myText = tr.ReadLine();
Mas isso não funciona, pois se refere à pasta Bin e meu arquivo não está lá ... Como posso fazer isso funcionar? : /
obrigado
Respostas:
No Solution Explorer, clique com o botão direito em myfile.txt e escolha "Propriedades"
A partir daí, defina
Build Action
paracontent
eCopy to Output Directory
paraCopy always
ouCopy if newer
fonte
Embedded Resource
e leia o artigo sobre como ler emebedded resource blogs.msdn.com/b/nikola/archive/2008/05/14/…Você pode usar o seguinte para obter o diretório raiz de um projeto de site:
Ou você pode obter o diretório base assim:
fonte
Adicione um Arquivo de Recurso ao seu projeto (Clique com o botão direito do mouse em Projeto-> Propriedades-> Recursos). Onde diz "strings", você pode mudar para "arquivos". Escolha "Adicionar recurso" e selecione seu arquivo.
Agora você pode consultar seu arquivo por meio da
Properties.Resources
coleção.fonte
O método acima trará algo assim:
A partir daqui, você pode navegar para trás usando System.IO.Directory.GetParent:
1 vez levará você para \ bin, 2 vezes levará você para \ myProjectNamespace, então seria assim:
Bem, agora você tem algo como "C: \ Users \ myuser \ Documents \ Visual Studio 2015 \ Projects \ myProjectNamespace", portanto, basta anexar o caminho final ao seu fileName, por exemplo:
Espero que ajude.
fonte
Você também pode incorporá-lo (ação de construção definida
Resource
como), veja como recuperá-lo de lá:(Algum código retirado desta resposta de Charles )
fonte
Você tem que usar o caminho absoluto neste caso. Mas se você definir o
CopyToOutputDirectory = CopyAlways
, ele funcionará como você está fazendo.fonte
Neste código você acessa o
root
diretório do projeto:então:
fonte