|
In this article I will demonstrate how to create directory and file in Windows Phone 7. IsolatedStorage in Windows Phone provide the feature of creating directory, subdirectory and file. This files remain on the device even if you switch off and then switch on the device.
I will use simple UI where user can enter root directory name followed by file in the root directory. Then I will create subdirectory followed by a file in the subdirectory and finally We will see all the files created in IsolatedStorage.
Let's write some code.
Step 1: Place below textblocks, textbox and button inside contentpanel of MainPage.xaml.
<TextBlock Text="Create root directory" Height="30" HorizontalAlignment="Left" Margin="10,15,0,0" Name="textRootDirectory" VerticalAlignment="Top" FontSize="18" /> <TextBox InputScope="Default" Height="80" HorizontalAlignment="Left" Margin="0,40,0,0" Name="txtDirectoryName" Text="" VerticalAlignment="Top" Width="450" />
<TextBlock Text="Create file in root directory" Height="30" HorizontalAlignment="Left" Margin="10,120,0,0" Name="textRootFile" VerticalAlignment="Top" FontSize="18" /> <TextBox IsEnabled="False" InputScope="Default" Height="80" HorizontalAlignment="Left" Margin="0,140,0,0" Name="txtFileName" Text="" VerticalAlignment="Top" Width="450" />
<TextBlock Text="Create file in root directory" Height="30" HorizontalAlignment="Left" Margin="10,220,0,0" Name="textSubDirectory" VerticalAlignment="Top" FontSize="18" /> <TextBox IsEnabled="False" InputScope="Default" Height="80" HorizontalAlignment="Left" Margin="0,250,0,0" Name="txtSubDirectoryName" Text="" VerticalAlignment="Top" Width="450" />
<TextBlock Text="Create file in subdirectory" Height="30" HorizontalAlignment="Left" Margin="10,330,0,0" Name="textFileSubDirectory" VerticalAlignment="Top" FontSize="18" /> <TextBox IsEnabled="False" InputScope="Default" Height="80" HorizontalAlignment="Left" Margin="0,350,0,0" Name="txtSubDirectoryFileName" Text="" VerticalAlignment="Top" Width="450" />
<Button x:Name="create" Margin="20,340,0,0" Height="80" Width="430" Click="create_Clicked" Content="Create Directory" /> <Button x:Name="view" Margin="20,480,0,0" Height="80" Width="430" Click="view_Clicked" Content="View" />
Step 2: Add System.IO.IsolatedStorage directive in MainPage.xaml.cs.
using System.IO.IsolatedStorage;
Step 3: Place create_Clicked method in MainPage.xaml.cs which will create diretory in root and subdiretory inside root. It will also create file in the root as well as in the subdirectory.
private void create_Clicked(object sender, RoutedEventArgs e) { using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { string directoryName; string fileName; IsolatedStorageFileStream file; switch (create.Content.ToString()) { case "Create Directory": directoryName = txtDirectoryName.Text.Trim(); if (!store.DirectoryExists(directoryName)) { store.CreateDirectory(directoryName); } else { MessageBox.Show(directoryName + " Directory already exists"); } create.Content = "Create File"; txtDirectoryName.IsEnabled = false; txtFileName.IsEnabled = true; break;
case "Create File": fileName = txtFileName.Text.Trim(); if (!store.FileExists(fileName)) { // Create a file in the root. file = store.CreateFile(fileName); file.Close(); } else { MessageBox.Show("File already exists."); } create.Content = "Create SubDirectory"; txtFileName.IsEnabled = false; txtSubDirectoryName.IsEnabled = true; break;
case "Create SubDirectory": directoryName = Path.Combine(txtDirectoryName.Text.Trim(), txtSubDirectoryName.Text.Trim()); if (!store.DirectoryExists(directoryName)) { store.CreateDirectory(directoryName); } else { MessageBox.Show("Subdirectory already exists."); } create.Content = "Create File in SubDirectory"; txtSubDirectoryName.IsEnabled = false; txtSubDirectoryFileName.IsEnabled = true; break;
case "Create File in SubDirectory": directoryName = Path.Combine(txtDirectoryName.Text.Trim(), txtSubDirectoryName.Text.Trim()); fileName = txtSubDirectoryFileName.Text.Trim(); if (!store.FileExists(Path.Combine(directoryName, fileName))) { // Create a file in the root. file = store.CreateFile(Path.Combine(directoryName, fileName)); file.Close(); } else { MessageBox.Show("File already exists."); } txtSubDirectoryName.IsEnabled = false; txtSubDirectoryFileName.IsEnabled = true; break; } } }
Step 4: Place view_Clicked method in MainPage.xaml.cs to view directory, subdirectory and files created.
private void view_Clicked(object sender, RoutedEventArgs e) { using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { foreach (string directoriesInTheRoot in store.GetDirectoryNames()) { MessageBox.Show("Direcotries in the root: " + directoriesInTheRoot); }
foreach (string filesInTheRoot in store.GetFileNames()) { MessageBox.Show("Files in the root: " + filesInTheRoot); }
string subDirectory = Path.Combine(txtDirectoryName.Text.Trim(), txtSubDirectoryName.Text.Trim()); foreach (string filesInSubDirs in store.GetFileNames(Path.Combine(subDirectory, "*.*"))) { MessageBox.Show("Files in sub directory: " + filesInSubDirs); } } }
This ends the article of creating directory, subdirectory and files in Windows Phone 7.
|