WindowsRuntimeStorageExtensions.OpenStreamForWriteAsync Methode

Definition

Überlädt

Name Beschreibung
OpenStreamForWriteAsync(IStorageFile)

Ruft einen Datenstrom zum Schreiben in eine angegebene Datei ab.

OpenStreamForWriteAsync(IStorageFolder, String, CreationCollisionOption)

Ruft einen Datenstrom zum Schreiben in eine Datei im angegebenen übergeordneten Ordner ab.

OpenStreamForWriteAsync(IStorageFile)

Wichtig

Diese API ist nicht CLS-kompatibel.

Ruft einen Datenstrom zum Schreiben in eine angegebene Datei ab.

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)

Parameter

windowsRuntimeFile
Windows.Storage.IStorageFile

Das Windows-Runtime Windows.Storage.IStorageFile-Objekt, in das geschrieben werden soll.

Gibt zurück

Eine Aufgabe, die den asynchronen Schreibvorgang darstellt.

Attribute

Ausnahmen

windowsRuntimeFile ist null.

Die Datei konnte nicht als Datenstrom geöffnet oder abgerufen werden.

Beispiele

Das folgende Beispiel zeigt, wie Sie eine Datei als Stream in einer Windows Store-App öffnen und mithilfe einer Instanz der klasse StreamReader darauf schreiben.

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

Das nächste Beispiel zeigt den XAML-Code, der dem vorherigen Beispiel zugeordnet ist.

<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>

Hinweise

Note

In Visual Basic und C# können Sie diese Methode als Instanzmethode für jedes Objekt vom Typ <xref:Windows.Storage.IStorageFile> aufrufen. Wenn Sie die Instanzmethodensyntax verwenden, um diese Methode aufzurufen, lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Extension-Methoden (Visual Basic) oder Extension-Methoden (C#-Programmierhandbuch).

Gilt für:

OpenStreamForWriteAsync(IStorageFolder, String, CreationCollisionOption)

Wichtig

Diese API ist nicht CLS-kompatibel.

Ruft einen Datenstrom zum Schreiben in eine Datei im angegebenen übergeordneten Ordner ab.

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)

Parameter

rootDirectory
Windows.Storage.IStorageFolder

Das Windows-Runtime Windows.Storage.IStorageFile-Objekt, das die zu schreibende Datei enthält.

relativePath
String

Der Pfad relativ zum Stammordner zu der Datei, in die geschrieben werden soll.

creationCollisionOption
Windows.Storage.CreationCollisionOption

Der Windows-Runtime Windows.Storage.CreationCollisionOption Enumerationswert, der das Verhalten angibt, das verwendet werden soll, wenn der Name der zu erstellenden Datei mit dem Namen einer vorhandenen Datei identisch ist.

Gibt zurück

Eine Aufgabe, die den asynchronen Schreibvorgang darstellt.

Attribute

Ausnahmen

rootDirectory oder relativePath ist null.

relativePath ist leer oder enthält nur Leerzeichen.

Die Datei konnte nicht als Datenstrom geöffnet oder abgerufen werden.

Beispiele

Das folgende Beispiel zeigt, wie Sie eine Datei als Stream in einer Windows Store-App öffnen und mithilfe einer Instanz der klasse StreamReader darauf schreiben.

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

Das nächste Beispiel zeigt den XAML-Code, der dem vorherigen Beispiel zugeordnet ist.

<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>

Hinweise

Note

In Visual Basic und C# können Sie diese Methode als Instanzmethode für jedes Objekt vom Typ <xref:Windows.Storage.IStorageFolder> aufrufen. Wenn Sie die Instanzmethodensyntax verwenden, um diese Methode aufzurufen, lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Extension-Methoden (Visual Basic) oder Extension-Methoden (C#-Programmierhandbuch).

Gilt für: