Usuário com melhor resposta
Como fazer leitura de arquivo em C# no Visual Studio 2012 para uma app de Windows 8?

Pergunta
-
Por favor, quais são as bibliotecas que tenho que usar para ler arquivo e como utilizá-las?
Tentei dezenas de métodos diferentes, mas não estou conseguindo usar o Stream como nas versões anteriores do Visual Studio. Por favor, me ajudem! No site da MSDN tem algumas soluções em C# mas nenhuma delas serviu. Só preciso abrir um arquivinho txt e ler as linhas...
Abraço!
Respostas
-
Obrigadão, Thiago!
Depois também tive problemas pra converter o arquivo de Western Europe para UTF8... Basicamente precisei abrir ele no VS, fui em File / Advanced Save Options e escolhi Unicode(UTF-8 with signature) - Codepage 65001. Pronto!
Olhem como ficou o código:
public async void lerDoArquivo(String nomeArq)
{
try
{
StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFile testFile = await folder.GetFileAsync(nomeArq);
IList<string> fileContent = await FileIO.ReadLinesAsync(testFile);
foreach (string s in fileContent)
{
listaAnimais.Add(s);
}
}
catch (FileNotFoundException)
{
this.error = "Arquivo não encontrado!";
}
}
Todas as Respostas
-
As bibliotecas e namespaces da Windows Store Apps são diferentes do que estamos acostumados a usar no .NET convencional, a maioria dos namespaces do Windows 8 são "Windows.Algo" ao invés de "System.algo", para se trabalhar com arquivos, você deve usar o "Windows.Storage" e "Windows.Storage.FileIO".
Veja esses exemplos, irão te ajudar:
Espero ter ajudado, abraços!
Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
thiagocoelho.net | @thiagokoelho -
Obrigadão, Thiago!
Depois também tive problemas pra converter o arquivo de Western Europe para UTF8... Basicamente precisei abrir ele no VS, fui em File / Advanced Save Options e escolhi Unicode(UTF-8 with signature) - Codepage 65001. Pronto!
Olhem como ficou o código:
public async void lerDoArquivo(String nomeArq)
{
try
{
StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFile testFile = await folder.GetFileAsync(nomeArq);
IList<string> fileContent = await FileIO.ReadLinesAsync(testFile);
foreach (string s in fileContent)
{
listaAnimais.Add(s);
}
}
catch (FileNotFoundException)
{
this.error = "Arquivo não encontrado!";
}
}