Język

WindowsRuntimeStorageExtensions.OpenStreamForWriteAsync Metoda

Definicja

Przeciążenia

Nazwa Opis
OpenStreamForWriteAsync(IStorageFile)

Pobiera strumień do zapisu w określonym pliku.

OpenStreamForWriteAsync(IStorageFolder, String, CreationCollisionOption)

Pobiera strumień do zapisu w pliku w określonym folderze nadrzędnym.

OpenStreamForWriteAsync(IStorageFile)

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Pobiera strumień do zapisu w określonym pliku.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Threading::Tasks::Task<System::IO::Stream ^> ^ OpenStreamForWriteAsync(Windows::Storage::IStorageFile ^ windowsRuntimeFile);
[System.CLSCompliant(false)]
public static System.Threading.Tasks.Task<System.IO.Stream> OpenStreamForWriteAsync(this Windows.Storage.IStorageFile windowsRuntimeFile);
[<System.CLSCompliant(false)>]
static member OpenStreamForWriteAsync : Windows.Storage.IStorageFile -> System.Threading.Tasks.Task<System.IO.Stream>
<Extension()>
Public Function OpenStreamForWriteAsync (windowsRuntimeFile As IStorageFile) As Task(Of Stream)

Parametry

windowsRuntimeFile
Windows.Storage.IStorageFile

Obiekt środowisko wykonawcze systemu Windows Windows.Storage.IStorageFile do zapisu.

Zwraca

Zadanie reprezentujące operację zapisu asynchronicznego.

Atrybuty

Wyjątki

Parametr windowsRuntimeFile ma wartość null.

Nie można otworzyć ani pobrać pliku jako strumienia.

Przykłady

W poniższym przykładzie pokazano, jak otworzyć plik jako Stream w aplikacji Windows Store i zapisać go przy użyciu wystąpienia klasy StreamReader.

using System;
using System.IO;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace ExampleApplication
{
    public sealed partial class BlankPage : Page
    {
        public BlankPage()
        {
            this.InitializeComponent();
        }

        private async void CreateButton_Click(object sender, RoutedEventArgs e)
        {
            StorageFile newFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("testfile3.txt");

            using (StreamWriter writer = new StreamWriter(await newFile.OpenStreamForWriteAsync()))
            {
                await writer.WriteLineAsync("new entry");
                await writer.WriteLineAsync(UserText.Text);
            }
        }

        private async void VerifyButton_Click(object sender, RoutedEventArgs e)
        {
            StorageFile openedFile = await ApplicationData.Current.LocalFolder.GetFileAsync("testfile3.txt");
            using (StreamReader reader = new StreamReader(await openedFile.OpenStreamForReadAsync()))
            {
                Results.Text = await reader.ReadToEndAsync();
            }
        }
    }
}
Imports System.IO
Imports Windows.Storage

NotInheritable Public Class BlankPage
    Inherits Page

    Private Async Sub CreateButton_Click(sender As Object, e As RoutedEventArgs)
        Dim newFile As StorageFile = Await ApplicationData.Current.LocalFolder.CreateFileAsync("testfile4.txt")

        Using writer As StreamWriter = New StreamWriter(Await newFile.OpenStreamForWriteAsync())
            Await writer.WriteLineAsync("new entry")
            Await writer.WriteLineAsync(UserText.Text)
        End Using
    End Sub

    Private Async Sub VerifyButton_Click(sender As Object, e As RoutedEventArgs)
        Dim openedFile As StorageFile = Await ApplicationData.Current.LocalFolder.GetFileAsync("testfile4.txt")
        Using reader As StreamReader = New StreamReader(Await openedFile.OpenStreamForReadAsync())
            Results.Text = Await reader.ReadToEndAsync()
        End Using
    End Sub
End Class

W następnym przykładzie pokazano kod XAML skojarzony z poprzednim przykładem.

<Page
    x:Class="ExampleApplication.BlankPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ExampleApplication"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <StackPanel Background="{StaticResource ApplicationPageBackgroundBrush}" VerticalAlignment="Center" HorizontalAlignment="Center">
        <TextBlock Text="Provide text to write to file:"></TextBlock>
        <TextBox Name="UserText" Width="400"></TextBox>
        <Button Name="CreateButton" Content="Create File" Click="CreateButton_Click"></Button>
        <Button Name="VerifyButton" Content="Verify Contents" Click="VerifyButton_Click"></Button>
        <TextBlock Name="Results"></TextBlock>
    </StackPanel>
</Page>

Uwagi

Note

W Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia na dowolnym obiekcie typu <xref:Windows.Storage.IStorageFile>. Jeśli używasz składni metody wystąpienia do wywołania tej metody, pomiń pierwszy parametr. Aby uzyskać więcej informacji, zobacz Extension Methods (Visual Basic) lub Extension Methods (Przewodnik programowania w języku C#).

Dotyczy

OpenStreamForWriteAsync(IStorageFolder, String, CreationCollisionOption)

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Pobiera strumień do zapisu w pliku w określonym folderze nadrzędnym.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Threading::Tasks::Task<System::IO::Stream ^> ^ OpenStreamForWriteAsync(Windows::Storage::IStorageFolder ^ rootDirectory, System::String ^ relativePath, Windows::Storage::CreationCollisionOption creationCollisionOption);
[System.CLSCompliant(false)]
public static System.Threading.Tasks.Task<System.IO.Stream> OpenStreamForWriteAsync(this Windows.Storage.IStorageFolder rootDirectory, string relativePath, Windows.Storage.CreationCollisionOption creationCollisionOption);
[<System.CLSCompliant(false)>]
static member OpenStreamForWriteAsync : Windows.Storage.IStorageFolder * string * Windows.Storage.CreationCollisionOption -> System.Threading.Tasks.Task<System.IO.Stream>
<Extension()>
Public Function OpenStreamForWriteAsync (rootDirectory As IStorageFolder, relativePath As String, creationCollisionOption As CreationCollisionOption) As Task(Of Stream)

Parametry

rootDirectory
Windows.Storage.IStorageFolder

Obiekt środowisko wykonawcze systemu Windows Windows.Storage.IStorageFile zawierający plik do zapisu.

relativePath
String

Ścieżka względem folderu głównego do pliku do zapisu.

creationCollisionOption
Windows.Storage.CreationCollisionOption

Wartość wyliczenia środowisko wykonawcze systemu Windows Windows.Storage.CreationCollisionOption, która określa zachowanie do użycia, gdy nazwa pliku do utworzenia jest taka sama jak nazwa istniejącego pliku.

Zwraca

Zadanie reprezentujące operację zapisu asynchronicznego.

Atrybuty

Wyjątki

rootDirectory lub relativePath ma wartość null.

relativePath jest pusty lub zawiera tylko znaki odstępu.

Nie można otworzyć ani pobrać pliku jako strumienia.

Przykłady

W poniższym przykładzie pokazano, jak otworzyć plik jako Stream w aplikacji Windows Store i zapisać go przy użyciu wystąpienia klasy StreamReader.

using System;
using System.IO;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace ExampleApplication
{
    public sealed partial class BlankPage : Page
    {
        public BlankPage()
        {
            this.InitializeComponent();
        }

        private async void CreateButton_Click(object sender, RoutedEventArgs e)
        {
            using (StreamWriter writer =
                new StreamWriter(await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(
                "testfile.txt",  CreationCollisionOption.OpenIfExists)))
            {
                await writer.WriteLineAsync("new entry");
                await writer.WriteLineAsync(UserText.Text);
            }
        }

        private async void VerifyButton_Click(object sender, RoutedEventArgs e)
        {
            StorageFile openedFile = await ApplicationData.Current.LocalFolder.GetFileAsync("testfile.txt");
            using (StreamReader reader = new StreamReader(await openedFile.OpenStreamForReadAsync()))
            {
                Results.Text = await reader.ReadToEndAsync();
            }
        }
    }
}
Imports System.IO
Imports Windows.Storage

NotInheritable Public Class BlankPage
    Inherits Page

    Private Async Sub CreateButton_Click(sender As Object, e As RoutedEventArgs)
        Using writer As StreamWriter =
               New StreamWriter(Await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(
               "testfile.txt", CreationCollisionOption.OpenIfExists))
            Await writer.WriteLineAsync("new entry")
            Await writer.WriteLineAsync(UserText.Text)
        End Using
    End Sub

    Private Async Sub VerifyButton_Click(sender As Object, e As RoutedEventArgs)
        Dim openedFile As StorageFile = Await ApplicationData.Current.LocalFolder.GetFileAsync("testfile.txt")
        Using reader As StreamReader = New StreamReader(Await openedFile.OpenStreamForReadAsync())
            Results.Text = Await reader.ReadToEndAsync()
        End Using
    End Sub
End Class

W następnym przykładzie pokazano kod XAML skojarzony z poprzednim przykładem.

<Page
    x:Class="ExampleApplication.BlankPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ExampleApplication"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <StackPanel Background="{StaticResource ApplicationPageBackgroundBrush}" VerticalAlignment="Center" HorizontalAlignment="Center">
        <TextBlock Text="Provide text to write to file:"></TextBlock>
        <TextBox Name="UserText" Width="400"></TextBox>
        <Button Name="CreateButton" Content="Create File" Click="CreateButton_Click"></Button>
        <Button Name="VerifyButton" Content="Verify Contents" Click="VerifyButton_Click"></Button>
        <TextBlock Name="Results"></TextBlock>
    </StackPanel>
</Page>

Uwagi

Note

W Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia na dowolnym obiekcie typu <xref:Windows.Storage.IStorageFolder>. Jeśli używasz składni metody wystąpienia do wywołania tej metody, pomiń pierwszy parametr. Aby uzyskać więcej informacji, zobacz Extension Methods (Visual Basic) lub Extension Methods (Przewodnik programowania w języku C#).

Dotyczy