Windows Phone 8 - чтение и запись в существующий текстовый файл в проекте
Привет, я застрял в проблеме, я создал текстовый файл, который я поместил в приложение. Я пытаюсь прочитать из него содержимое, которое я написал на нем раньше. С этим кодом:
public async Task WriteDataToFileAsync(string fileName, string content)
{
byte[] data = Encoding.Unicode.GetBytes(content);
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.CreateFileAsync(fileName,CreationCollisionOption.ReplaceExisting);
using (var s = await file.OpenStreamForWriteAsync())
{
await s.WriteAsync(data, 0, data.Length);
}
}
public async Task<string> ReadFileContentsAsync(string fileName)
{
var folder = ApplicationData.Current.LocalFolder;
try
{
var file = await folder.OpenStreamForReadAsync(fileName);
using (var streamReader = new StreamReader(file))
{
return streamReader.ReadToEnd();
}
}
catch (Exception)
{
MessageBox.Show("Error");
return string.Empty;
}
}
private async void functionWhereNeedReeding()
{
string contents = await this.ReadFileContentsAsync("myimportedfile.txt");
MessageBox.Show(contents);
}
Дайте мне все время сообщение об ошибке, и я не могу понять, где моя ошибка. Надеюсь, что вы мне поможете. Наверняка содержимое все еще пусто.
1 ответ
Решение
Недавно я создал вспомогательную функцию в своем проекте WP 7 для чтения текстового файла, включенного в проект. Вы можете попробовать использовать его, функция также работает в проекте WP 8:
public static class FileHelper
{
public static string ReadFile(string filePath)
{
var ResrouceStream = Application.GetResourceStream(new Uri(filePath, UriKind.Relative));
if (ResrouceStream != null)
{
Stream myFileStream = ResrouceStream.Stream;
if (myFileStream.CanRead)
{
StreamReader myStreamReader = new StreamReader(myFileStream);
return myStreamReader.ReadToEnd();
}
}
return "";
}
}
Затем я могу использовать эту функцию следующим образом (в этом примере файл находится в папке Assets):
var textFileContent = FileHelper.ReadFile(@"Assets\MyTextFile.txt");