Windows Phone 8.1 StorageFile 安装包文件

network | | 访问(56)
<ScrollViewer>
    <StackPanel>
        <Button Content="获取安装包的根目录" x:Name="btGetFile" Click="btGetFile_Click" Width="370"/>
        <TextBlock Text="文件夹列表:" />
        <ListBox x:Name="lbFolder" >
        </ListBox>
        <Button Content="打开选中的文件夹" x:Name="open" Click="open_Click" Width="370"/>
        <TextBlock Text="文件列表:"/>
        <ListBox x:Name="lbFile">
        </ListBox>
        <Button Content="在选中文件夹下创建测试文件" x:Name="create" Click="create_Click" Width="370"/>
        <Button Content="删除选中的文件" x:Name="delete" Click="delete_Click" Width="370"/>
    </StackPanel>
</ScrollViewer>
public sealed partial class MainPage: Page {
    public MainPage() {
        this.InitializeComponent();
        this.NavigationCacheMode = NavigationCacheMode.Required;
    }

    protected override void OnNavigatedTo(NavigationEventArgs e) {}

    private async void btGetFile_Click(object sender, RoutedEventArgs e) {
        lbFolder.Items.Clear();
        StorageFolder localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
        foreach(StorageFolder folder in await localFolder.GetFoldersAsync()) {
            ListBoxItem item = new ListBoxItem();
            item.Content = "应用程序目录" + folder.Name;
            item.DataContext = folder;
            lbFolder.Items.Add(item);
        }
        lbFile.Items.Clear();
        foreach(StorageFile file in await localFolder.GetFilesAsync()) {
            ListBoxItem item3 = new ListBoxItem();
            item3.Content = "文件:" + file.Name;
            item3.DataContext = file;
            lbFile.Items.Add(item3);
        }
    }

    private async void open_Click(object sender, RoutedEventArgs e) {
        if (lbFolder.SelectedIndex == -1) {
            await new MessageDialog("请选择一个文件夹").ShowAsync();
        } else {
            ListBoxItem item = lbFolder.SelectedItem as ListBoxItem;
            StorageFolder folder = item.DataContext as StorageFolder;
            lbFolder.Items.Clear();
            foreach(StorageFolder folder2 in await folder.GetFoldersAsync()) {
                ListBoxItem item2 = new ListBoxItem();
                item2.Content = "文件夹:" + folder2.Name;
                item2.DataContext = folder;
                lbFolder.Items.Add(item2);
            }
            lbFile.Items.Clear();
            foreach(StorageFile file in await folder.GetFilesAsync()) {
                ListBoxItem item3 = new ListBoxItem();
                item3.Content = "文件:" + file.Name;
                item3.DataContext = file;
                lbFile.Items.Add(item3);
            }

        }
    }

    private async void create_Click(object sender, RoutedEventArgs e) {
        if (lbFolder.SelectedIndex == -1) {
            await new MessageDialog("请选择一个文件夹").ShowAsync();
        } else {
            ListBoxItem item = lbFolder.SelectedItem as ListBoxItem;
            StorageFolder folder = item.DataContext as StorageFolder;
            StorageFile file = await folder.CreateFileAsync(DateTime.Now.Millisecond.ToString() + ".txt");
            ListBoxItem item3 = new ListBoxItem();
            item3.Content = "文件:" + file.Name;
            item3.DataContext = file;
            lbFile.Items.Add(item3);
            await new MessageDialog("创建文件成功").ShowAsync();
        }
    }

    private async void delete_Click(object sender, RoutedEventArgs e) {
        if (lbFile.SelectedIndex == -1) {
            await new MessageDialog("请选择一个文件夹").ShowAsync();
        } else {
            ListBoxItem item = lbFile.SelectedItem as ListBoxItem;
            StorageFile file = item.DataContext as StorageFile;
            await file.DeleteAsync();
            lbFile.Items.Remove(item);
            await new MessageDialog("删除成功").ShowAsync();
        }
    }

}