Windows Phone 7: исключение FileStream - PullRequest
3 голосов
/ 08 марта 2011

Я пытаюсь использовать FileStream (используя пространство имен System.IO), но получаю исключение:

Attempt to access the method failed 

Вот код:

FileStream fs = new FileStream("file.txt", FileMode.Create); 

Я искал на microsoft.comи я обнаружил, что эта ошибка вызвана тем, что я использую неверную ссылку на библиотеку.

Но в моем проекте я компилирую файл mscorlib.dll из папки: C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework\ Silverlight \ v4.0

Мне нужна помощь, пожалуйста.

Ответы [ 2 ]

3 голосов
/ 08 марта 2011

Вам нужно будет использовать IsolatedStorage , например:

Поместите вверху вашего файла:

using System.IO.IsolatedStorage;

Тогда в вашем методе сделайте это:

using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var istream = new IsolatedStorageFileStream("File.txt", FileMode.OpenOrCreate, store))
    {
        using (var sw = new StreamWriter(istream))
        {
            sw.Write("Some Stuff");
        }
    }
}

Отличный пример и объяснение этой и других операций можно найти здесь: http://msdn.microsoft.com/en-us/library/cc265154(v=VS.95).aspx#Y300

Вы можете просмотреть свое изолированное хранилище с помощью Windows Phone 7 IsolatedStorageExplorer

Хорошее место для начала документации: http://msdn.microsoft.com/library/ff626516(v=VS.92).aspx

Также здесь: http://create.msdn.com/en-us/education/documentation

1 голос
/ 08 марта 2011

На WindowsPhone вы должны использовать IsolatedStorage - см., Например, это руководство - http://3water.wordpress.com/2010/08/07/isolated-storage-on-wp7-ii/

Чтение:

    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    using (var readStream = new IsolatedStorageFileStream(fileName, FileMode.Open, store))
    using (var reader = new StreamReader(readStream))
    {
        return reader.ReadToEnd();
    }

Запись:

    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    using (var writeStream = new IsolatedStorageFileStream(fileName, FileMode.Create, store))
    using (var writer = new StreamWriter(writeStream))
    {
        writer.Write(content);
    }
...