На MSDN есть раздел , который объясняет это.Разве это не работает?
Пример кода, показанного на этой странице:
private void btnWrite_Click(object sender, RoutedEventArgs e)
{
// Obtain the virtual store for the application.
IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
// Create a new folder and call it "MyFolder".
myStore.CreateDirectory("MyFolder");
// Specify the file path and options.
using (var isoFileStream = new IsolatedStorageFileStream("MyFolder\\myFile.txt", FileMode.OpenOrCreate, myStore))
{
//Write the data
using (var isoFileWriter = new StreamWriter(isoFileStream))
{
isoFileWriter.WriteLine(txtWrite.Text);
}
}
}
Теперь вы заметите, что вам нужно программно создать каталог в изолированном хранилище, прежде чем пытаться записатьфайл для него.
В целях разработки каталог и файл будут созданы на вашем компьютере разработки в каталоге, как показано на этой странице .Если вы разрабатываете на компьютере под управлением Windows 7, я ожидаю, что вы найдете свой изолированный каталог и файл в том же месте, что и Vista, например, для не перемещаемого профиля пользователя Users<username>AppData\Local
.
, поэтому длякод выше, ваш файл должен быть в <username>\AppData\Local\MyFolder
.
Эта строка в коде:
IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
Сопоставляет ваше изолированное хранилище с <username>\AppData\Local
на компьютере разработчика и вызывает его myStore
.
Эта строка создает каталог, в который вы затем можете записать:
myStore.CreateDirectory("MyFolder");
Чтобы ваше приложение считывало из этого файла пример кода:
// This code opens and reads the contents of myFile.txt.
private void btnRead_Click(object sender, RoutedEventArgs e)
{
// Obtain a virtual store for the application.
IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
try
{
// Specify the file path and options.
using (var isoFileStream = new IsolatedStorageFileStream("MyFolder\\myFile.txt", FileMode.Open, myStore))
{
// Read the data.
using (var isoFileReader = new StreamReader(isoFileStream))
{
txtRead.Text = isoFileReader.ReadLine();
}
}
}
catch
{
// Handle the case when the user attempts to click the Read button first.
txtRead.Text = "Need to create directory and the file first.";
}
}
Обратите внимание, как вам нужно снова узнать фактическое местоположение файла изолированного хранилища и указать имя каталога в пути к файлу при открытии файла.
Дополнительно (1/3/2012)
При использовании FileMode.Append
убедитесь, что вы также используете FileAccess.Write
.Вместо проверки, существует ли файл, просто используйте FileMode.OpenOrCreate
.При использовании Silverlight убедитесь, что изолированное хранилище включено:
Start -> All Programs -> Microsoft Silverlight -> Microsoft Silverlight -> Application Storage -> make sure the 'enable application storage' checkbox is checked.