×
Namespaces

Variants
Actions
(Difference between revisions)

File manipulation with IsolatedStorageFile on Windows Phone

From Nokia Developer Wiki
Jump to: navigation, search
pavan.pareta (Talk | contribs)
(Pavan.pareta - - Windows Phone 7 Isolated Storage Explorer)
pavan.pareta (Talk | contribs)
(Pavan.pareta - - Implementation)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Windows Phone]][[Category:Code Examples]][[Category:Files/Data]][[Category:Windows Phone 7.5]][[Category:Windows Phone 8]][[Category:XAML]]
+
[[Category:Files/Data on Windows Phone]][[Category:Windows Phone 7.5]][[Category:Windows Phone 8]][[Category:XAML]][[Category:Code Examples]]
 +
[[Category:Files/Data on Windows Phone]][[Category:Windows Phone 7.5]][[Category:Windows Phone 8]][[Category:XAML]][[Category:Code Examples]]
 
{{Abstract|This code example demonstrates how to store files locally using Windows Phone Isolated Storage.}} Official documentation on the topic(s) is available here: [http://msdn.microsoft.com/en-us/library/ff626522(v=vs.92).aspx Local Data Storage for Windows Phone] (MSDN).  
 
{{Abstract|This code example demonstrates how to store files locally using Windows Phone Isolated Storage.}} Official documentation on the topic(s) is available here: [http://msdn.microsoft.com/en-us/library/ff626522(v=vs.92).aspx Local Data Storage for Windows Phone] (MSDN).  
 
{{Tip|While {{Icode|IsolatedStorageFile}} works in Windows Phone 7 and 8, if you're focussing on Windows Phone 8 only you should use the new API - see [http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681698(v=vs.105).aspx Quickstart: Working with files and folders in Windows Phone 8]}}
 
{{Tip|While {{Icode|IsolatedStorageFile}} works in Windows Phone 7 and 8, if you're focussing on Windows Phone 8 only you should use the new API - see [http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681698(v=vs.105).aspx Quickstart: Working with files and folders in Windows Phone 8]}}
Line 45: Line 46:
 
Writer.Close();   
 
Writer.Close();   
 
</code>
 
</code>
We have created an object of  [http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.aspx IsolatedStorageFile] which obtain a virtual storage for the application. Then let’s create a new [http://msdn.microsoft.com/en-us/library/system.io.streamwriter(v=VS.95).aspx StreamWriter], to write the file to the specified location. {{Icode|WriteLine()}} is used to write the content to the file. And Finally we close the [http://msdn.microsoft.com/en-us/library/system.io.streamwriter(v=VS.95).aspx StreamWriter]. This will just create a new file with the name ''TestFile.txt'' in the Isolated Storage.  
+
We have created an object of  [http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.aspx IsolatedStorageFile] which obtain a virtual storage for the application. Then let’s create a new [http://msdn.microsoft.com/en-us/library/system.io.streamwriter(v=VS.95).aspx StreamWriter], to write the file to the specified location. {{Icode|WriteLine()}} is used to write the content to the file. And Finally we close the [http://msdn.microsoft.com/en-us/library/system.io.streamwriter(v=VS.95).aspx StreamWriter]. This will just create a new file with the name '''TestFile.txt''' in the Isolated Storage.  
 
   
 
   
 
To retrieve the content of the file from the Isolated Storage. Let’s again create a virtual store for the application. This time we will create a [http://msdn.microsoft.com/en-us/library/system.io.streamreader(v=VS.95).aspx StreamReader] to read the content.  
 
To retrieve the content of the file from the Isolated Storage. Let’s again create a virtual store for the application. This time we will create a [http://msdn.microsoft.com/en-us/library/system.io.streamreader(v=VS.95).aspx StreamReader] to read the content.  
Line 71: Line 72:
 
*Add the reference '''IsolatedStorageExplorer.dll''' to the project from  
 
*Add the reference '''IsolatedStorageExplorer.dll''' to the project from  
 
''C:\Program Files\WP7 Isolated Storage Explorer\Library\IsolatedStorageExplorer.dll''
 
''C:\Program Files\WP7 Isolated Storage Explorer\Library\IsolatedStorageExplorer.dll''
*Start {{IcodeIsolatedStorageExplorer}} in the '''App.xaml.cs''' while launching.  
+
*Start ''IsolatedStorageExplorer'' in the '''App.xaml.cs''' while launching.  
 
<code csharp>
 
<code csharp>
 
private void Application_Launching(object sender, LaunchingEventArgs e)
 
private void Application_Launching(object sender, LaunchingEventArgs e)
Line 80: Line 81:
 
</code>
 
</code>
 
''Localhost'' is the name/IP address of the system
 
''Localhost'' is the name/IP address of the system
*In ''Activated'' event in'' App.xaml.cs'' call  {{Icode|IsolatedStorageExplorer.Explorer.RestoreFromTombstone()}}  
+
*In ''Activated'' event in '''App.xaml.cs''' call  {{Icode|IsolatedStorageExplorer.Explorer.RestoreFromTombstone()}}  
 
<code csharp>
 
<code csharp>
 
private void Application_Activated(object sender, ActivatedEventArgs e)
 
private void Application_Activated(object sender, ActivatedEventArgs e)

Latest revision as of 19:23, 3 August 2013

This code example demonstrates how to store files locally using Windows Phone Isolated Storage. Official documentation on the topic(s) is available here: Local Data Storage for Windows Phone (MSDN).

Tip.pngTip: While IsolatedStorageFile works in Windows Phone 7 and 8, if you're focussing on Windows Phone 8 only you should use the new API - see Quickstart: Working with files and folders in Windows Phone 8

WP Metro Icon File.png
SignpostIcon XAML 40.png
WP Metro Icon WP8.png
SignpostIcon WP7 70px.png
Article Metadata
Code ExampleTested with
SDK: Windows Phone SDK 8.0, Windows Phone SDK 7.1
Devices(s): Nokia Lumia 820, Lumia 920
Compatibility
Platform(s): Windows Phone 8.0/ 7.1
Windows Phone 8
Windows Phone 7.5
Article
Keywords: File Handling/ Isolated Storage
Created: somnathbanik (18 Nov 2011)
Last edited: pavan.pareta (03 Aug 2013)

Contents

[edit] Introduction

Windows Phone 7 apps store their local data in an app-specific file system area known as Isolated Storage. There are three ways we can store data:

Note.pngNote: Symbian developers will recognise that Isolated Storage is conceptually similar to an app's private data cage. The main difference is that Windows Phone apps only have access to their own isolated storage - there is no shared file system. This creates challenges for apps that want to share data or files.

This code examples uses IsolatedStorageFileStream class to write and retrieve text (provided by the user) to a file. In a following section, we also provide information about Isolated Storage Explorer, a tool for exploring the file structure in isolated storage.

File Manipulation in WP7

[edit] Implementation

When we are ready with an empty project for Windows Phone, let’s take some data from user input and save it to a file in Isolated Storage.

IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
StreamWriter Writer = new StreamWriter(new IsolatedStorageFileStream("TestFile.txt", FileMode.OpenOrCreate, fileStorage));
Writer.WriteLine(textBox1.Text);
Writer.Close();

We have created an object of IsolatedStorageFile which obtain a virtual storage for the application. Then let’s create a new StreamWriter, to write the file to the specified location. WriteLine() is used to write the content to the file. And Finally we close the StreamWriter. This will just create a new file with the name TestFile.txt in the Isolated Storage.

To retrieve the content of the file from the Isolated Storage. Let’s again create a virtual store for the application. This time we will create a StreamReader to read the content.

IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
StreamReader Reader = null;
try
{
Reader = new StreamReader(new IsolatedStorageFileStream("TestFile.txt", FileMode.Open, fileStorage));
string textFile = Reader.ReadToEnd();
textBox2.Text = textFile;
Reader.Close();
}
catch
{
MessageBox.Show("File it not created");
}

Then read the file from the specific location. Read the content of the file with ReadToEnd() and finally display the content of the file to the Textbox. If the file doesn’t exist and user clicks on the retrieve button to display the file content then we display a message. We can also check the file existence with IsolatedStorageFile::FileExists(FilePath).

[edit] Windows Phone 7 Isolated Storage Explorer

WP7 Isolated Storage Explorer

Windows Phone 7 Isolated Storage Explorer allows you to see and explore files in the Isolated Storage. You can also import/export the file to/from the Isolated Storage.

C:\Program Files\WP7 Isolated Storage Explorer\Library\IsolatedStorageExplorer.dll

  • Start IsolatedStorageExplorer in the App.xaml.cs while launching.
private void Application_Launching(object sender, LaunchingEventArgs e)
{
IsolatedStorageExplorer.Explorer.Start("localhost");
}

Localhost is the name/IP address of the system

  • In Activated event in App.xaml.cs call IsolatedStorageExplorer.Explorer.RestoreFromTombstone()
private void Application_Activated(object sender, ActivatedEventArgs e)
{
IsolatedStorageExplorer.Explorer.RestoreFromTombstone();
}
  • Run the application and launch the IsolatedStorageExplorer from

Start->All Programs-> WP7 Isolated Storage Explorer

  • This will display the file being created, you can download the file to the desktop, delete the file or even can import file to the Isolated Storage.

[edit] Summary

When we create a file in Isolated Storage the I/O operations are restricted to, so the data are local to the application. It doesn’t have direct access from any other file system or application. So it’s secure from unauthorized access. If you are sharing same data from two applications then those data can’t be local to any of the application, it suggested to store the data in cloud. The storage resources on a phone are limited, so it is recommended to store necessary data.

[edit] Source Code

The full source code of the example is available here: File:IsolatedStorageWP7.zip

This page was last modified on 3 August 2013, at 19:23.
1002 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×