[windows phone开发]文件操作



windows phone开发——文件操作


    windows phone为应用提供了独立存储的方式,使得一个App所存储的文件内容不被其他应用所访问,以保证其安全性。在wp7的时代,提供了IsolatedStorageFile 类用于在应用的本地文件夹中将数据保存到文件。使用文件时,您也通常会使用 IsolatedStorageFileStream 类读取和写入文件的内容。当然,在现在的wp8,wp8.1也是支持此类操作的,并且全新的wp8提供了新的类来进行文件和文件夹的操作:StorageFolder 类用于向本地文件夹内的某个文件读取和写入数据。使用文件时,您也通常会使用 StreamReader 类读取和写入文件的内容。

   下面将分别介绍以上两种方式如何来实现的文件的存取的:

   首先将一个页面进行如下布局

  <TextBlock Text="文件目录" Margin="20,0,0,0"/>
            <TextBox x:Name="textbox1"  Grid.Row="1" Margin="20,0,0,0"/>
            <TextBlock Text="文件名称"  Grid.Row="2" Margin="20,0,0,0"/>
            <TextBox x:Name="textbox2" Grid.Row="3" Margin="20,0,0,0"/>
            <TextBlock Text="文件内容" Grid.Row="4" Margin="20,0,0,0"/>
            <TextBox x:Name="textbox3" Grid.Row="5" Margin="20,0,0,0"/>
            <StackPanel Orientation="Horizontal" Grid.Row="6" VerticalAlignment="Center" HorizontalAlignment="Center">
                <Button x:Name="button1"  Content="创建" Click="button1_Click" />
                <Button x:Name="button2" Content="写入" Click="button2_Click"/>
                <Button x:Name="button3" Content="读取" Click="button3_Click"/>
                <Button x:Name="button4" Content="删除" Click="button4_Click"/> 
            </StackPanel>

首先,创建文件夹,在进行文件操作之前不要忘记了添加命名空间

使用IsolatedStorageFile

 private void button1_Click(object sender, RoutedEventArgs e)
        {
            IsolatedStorageFileStream filestream;
            string path = "";
            string name = "";
            if(textbox1.Text.Trim()!=""&&textbox2.Text.Trim()!="")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();
            }
            if (!storageFile.DirectoryExists(path))
                storageFile.CreateDirectory(path);
            if (!storageFile.FileExists(System.IO.Path.Combine(path, name)))
                filestream = storageFile.CreateFile(System.IO.Path.Combine(path, name));
            else
                filestream = storageFile.OpenFile(System.IO.Path.Combine(path, name),FileMode.Append);
            var writer = new StreamWriter(filestream);
            writer.Write(textbox3.Text);
            writer.Close();
            filestream.Close();
            textbox3.Text = "";
            textbox1.Text = "";
            textbox2.Text = "";
        }


使用StorageFolder

 private async void button1_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder localFolder = ApplicationData.Current.LocalFolder;
            string path = "";
            string name = "";
            byte []content=System.Text.Encoding.UTF8.GetBytes(this.textbox3.Text.ToCharArray());;
            if (textbox1.Text.Trim() != "" && textbox2.Text.Trim() != "")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();
            }
         
            var dataFolder = await localFolder.CreateFolderAsync(path, CreationCollisionOption.OpenIfExists);
            var dataFile = await dataFolder.CreateFileAsync(name, CreationCollisionOption.OpenIfExists);
            if (textbox3.Text.Trim() != "")
            {
                using (var s = await dataFile.OpenStreamForWriteAsync())
                {
                    s.Write(content,0,content.Length);
                }
            }
            textbox1.Text = "";
            textbox2.Text = "";
            textbox3.Text = "";
        }


向文件中写入内容

使用IsolatedStorageFile

 private void button2_Click(object sender, RoutedEventArgs e)
        {
            IsolatedStorageFileStream filestream;
            string path = "";
            string name = "";
            if(textbox1.Text.Trim()!=""&&textbox2.Text.Trim()!="")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();
            }
            if (storageFile.FileExists(System.IO.Path.Combine(path, name)))
            {
                 filestream =storageFile.OpenFile(System.IO.Path.Combine(path,name),FileMode.Append);
                 var write = new StreamWriter(filestream);
                 write.Write(textbox3.Text);
                 write.Close();
                 filestream.Close();
                 textbox3.Text = "";
                
            }
        }


使用StorageFolder

private async void button2_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder localFolder = ApplicationData.Current.LocalFolder;
            string path = "";
            string name = "";
            byte[] content = System.Text.Encoding.UTF8.GetBytes(this.textbox3.Text.ToCharArray());
            if (textbox1.Text.Trim() != "" && textbox2.Text.Trim() != "")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();
            }
            var dataFolder = await localFolder.GetFolderAsync(path);
            var dataFile = await dataFolder.GetFileAsync(name);
            using (var s = await dataFile.OpenStreamForWriteAsync())
            {
                s.Write(content, 0, content.Length);
            }
            textbox3.Text = "";


        }


读取文件内容

使用IsolatedStorageFile

private void button3_Click(object sender, RoutedEventArgs e)
        {
            IsolatedStorageFileStream filestream;
            string path = "";
            string name = "";
            if(textbox1.Text.Trim()!=""&&textbox2.Text.Trim()!="")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();
            }
            if(storageFile.FileExists(System.IO.Path.Combine(path,name)))
            {
                filestream = storageFile.OpenFile(System.IO.Path.Combine(path, name), FileMode.Open);
                var read = new StreamReader(filestream);
                textbox3.Text = read.ReadToEnd();
                read.Close();
                filestream.Close();
            }
        }


使用StorageFolder

 private async void button3_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder localFolder=ApplicationData.Current.LocalFolder;
            string path = "";
            string name = "";
            if (textbox1.Text.Trim() != "" && textbox2.Text.Trim() != "")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();
            }
           var dataFolder=await localFolder.GetFolderAsync(path);
           var dataFile = await dataFolder.OpenStreamForReadAsync(name);
           using (var s=new StreamReader(dataFile))
           {
               this.textbox3.Text=s.ReadToEnd();
           }
           
        }


删除文件

使用IsolatedStorageFile

 private void button4_Click(object sender, RoutedEventArgs e)
        {
           // IsolatedStorageFileStream filestream;
            string name = "";
            string path = "";
            if(textbox1.Text.Trim()!=""&&textbox2.Text.Trim()!="")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();

            }
            if(storageFile.FileExists(System.IO.Path.Combine(path,name)))
            {
                storageFile.DeleteFile(System.IO.Path.Combine(path, name));
            }
            textbox3.Text = "";
            textbox2.Text = "";
        }

使用StorageFolder

private async void button4_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder localFolder = ApplicationData.Current.LocalFolder;
            string name = "";
            string path = "";
            if (textbox1.Text.Trim() != "" && textbox2.Text.Trim() != "")
            {
                path = textbox1.Text.Trim();
                name = textbox2.Text.Trim();

            }
            var dataFolder = await localFolder.GetFolderAsync(path);
            var dataFile = await dataFolder.GetFileAsync(name);
            await dataFile.DeleteAsync();
            await dataFolder.DeleteAsync();
            textbox3.Text = "";
            textbox2.Text = "";
        }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值