このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

クイックスタート: Windows Phone 8 でのファイルとフォルダーの操作

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 のみ

StorageFolder クラスは、ローカル フォルダー内のファイルとの間でデータを読み書きする場合に使用します。ファイルを操作する場合、通常は、StreamReader クラスも使用してファイルでのコンテンツの読み取り/書き込みを行います。

このトピックは、次のセクションで構成されています。

StorageFolder を操作する場合は、通常、以下のメソッドを使用します。

StorageFolder.CreateFolderAsync

ローカル フォルダーでディレクトリを作成します。

StorageFolder.CreateFileAsync

非同期メソッドにより、ローカル フォルダー内にファイルを作成します。

OpenStreamForReadAsync

指定されたフォルダー内のファイルを読み取るためのストリームを取得します。

OpenStreamForWriteAsync

指定されたフォルダー内のファイルを書き込むためのストリームを取得します。

DeleteAsync

フォルダーを削除します。

RenameAsync

フォルダーの名前を変更します。

次の図は、ローカル フォルダーへのテキスト データの読み書きを実行するサンプル アプリです。

Quickstart - Files  & Folders

この UI を作成するには、MainPage.xaml ファイルで ContentPanel という名前の Grid を次の XAML に置き換えます。

<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0">
    <TextBox 
        Name="textBox1" 
        HorizontalAlignment="Left"
        Height="72" 
        Margin="0,22,0,0" 
        TextWrapping="Wrap" 
        Text="Enter text here." 
        VerticalAlignment="Top" Width="456"/>
    <Button 
        Name='btnWrite' 
        Content="Write"
        HorizontalAlignment="Left" 
        Margin="10,94,0,0" 
        VerticalAlignment="Top"
        Width="156" 
        Click="btnWrite_Click"/>
    <TextBlock 
        Name="textBlock1" 
        HorizontalAlignment="Left"
        Margin="10,293,0,0" 
        TextWrapping="Wrap" Text=""
        VerticalAlignment="Top" 
        Height="61" 
        Width="436"/>
    <Button 
        Name="btnRead" 
        Content="Read"
        HorizontalAlignment="Left" 
        Margin="10,374,0,0" 
        VerticalAlignment="Top"
        Width="156" 
        IsEnabled="False"
        Click="btnRead_Click"/>
</Grid>

このクイックスタートに示すコードを使用してファイルとフォルダーを操作するには、Windows Phone アプリ テンプレートから作成したプロジェクトに次のディレクティブを追加します。MainPage.xaml.cs ファイルの先頭にあるステートメントを使用して、これらを配置します。


using System.IO;
using System.Threading.Tasks;
using Windows.Storage;


次のコードは、フォルダーを作成してテキスト ファイルに書き込む方法を示しています。まだ存在しない場合、DataFile.txt という名前のファイルと DataFolder という名前のフォルダーが作成されます。CreateFileAsync および CreateFolderAsync メソッドを使用してファイルとフォルダーを作成します。ファイルとフォルダーが既に存在する場合の処理は、CreationCollisionOption 列挙体を使用して指定します。


private async void btnWrite_Click(object sender, RoutedEventArgs e)
{
    await WriteToFile();

    // Update UI.
    this.btnWrite.IsEnabled = false;
    this.btnRead.IsEnabled = true;
}

private async Task WriteToFile()
{
    // Get the text data from the textbox. 
    byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes(this.textBox1.Text.ToCharArray());

    // Get the local folder.
    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;

    // Create a new folder name DataFolder.
    var dataFolder = await local.CreateFolderAsync("DataFolder",
        CreationCollisionOption.OpenIfExists);

    // Create a new file named DataFile.txt.
    var file = await dataFolder.CreateFileAsync("DataFile.txt",
    CreationCollisionOption.ReplaceExisting);

    // Write the data from the textbox.
    using (var s = await file.OpenStreamForWriteAsync())
    {
        s.Write(fileBytes, 0, fileBytes.Length);
    }
}


次のコードは、テキスト データの読み取り方法を示しています。


private async void btnRead_Click(object sender, RoutedEventArgs e)
{
    await ReadFile();

    // Update UI.
    this.btnWrite.IsEnabled = true;
    this.btnRead.IsEnabled = false;
}

private async Task ReadFile()
{
    // Get the local folder.
    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;

    if (local != null)
    {
        // Get the DataFolder folder.
        var dataFolder = await local.GetFolderAsync("DataFolder");

        // Get the file.
        var file = await dataFolder.OpenStreamForReadAsync("DataFile.txt");

        // Read the data.
        using (StreamReader streamReader = new StreamReader(file))
        {
            this.textBlock1.Text = streamReader.ReadToEnd();
        }

    }
}


表示:
© 2015 Microsoft