WindowsRuntimeStorageExtensions.OpenStreamForReadAsync Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| OpenStreamForReadAsync(IStorageFile) |
Hiermee haalt u een stream op voor het lezen uit een opgegeven bestand. |
| OpenStreamForReadAsync(IStorageFolder, String) |
Hiermee haalt u een stream op voor het lezen uit een bestand in de opgegeven bovenliggende map. |
OpenStreamForReadAsync(IStorageFile)
Belangrijk
Deze API is niet CLS-conform.
Hiermee haalt u een stream op voor het lezen uit een opgegeven bestand.
public:
[System::Runtime::CompilerServices::Extension]
static System::Threading::Tasks::Task<System::IO::Stream ^> ^ OpenStreamForReadAsync(Windows::Storage::IStorageFile ^ windowsRuntimeFile);
[System.CLSCompliant(false)]
public static System.Threading.Tasks.Task<System.IO.Stream> OpenStreamForReadAsync(this Windows.Storage.IStorageFile windowsRuntimeFile);
[<System.CLSCompliant(false)>]
static member OpenStreamForReadAsync : Windows.Storage.IStorageFile -> System.Threading.Tasks.Task<System.IO.Stream>
<Extension()>
Public Function OpenStreamForReadAsync (windowsRuntimeFile As IStorageFile) As Task(Of Stream)
Parameters
- windowsRuntimeFile
- Windows.Storage.IStorageFile
Het Windows Runtime Windows.Storage.IStorageFile-object waaruit moet worden gelezen.
Retouren
Een taak die de asynchrone leesbewerking vertegenwoordigt.
- Kenmerken
Uitzonderingen
windowsRuntimeFile is null.
Het bestand kan niet worden geopend of opgehaald als een stream.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een bestand opent als een Stream in een Windows Store-app en de inhoud ervan leest met behulp van een exemplaar van de klasse StreamReader.
using System;
using System.IO;
using System.Text;
using Windows.Storage.Pickers;
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 Button_Click_1(object sender, RoutedEventArgs e)
{
StringBuilder contents = new StringBuilder();
string nextLine;
int lineCounter = 1;
var openPicker = new FileOpenPicker();
openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
openPicker.FileTypeFilter.Add(".txt");
StorageFile selectedFile = await openPicker.PickSingleFileAsync();
using (StreamReader reader = new StreamReader(await selectedFile.OpenStreamForReadAsync()))
{
while ((nextLine = await reader.ReadLineAsync()) != null)
{
contents.AppendFormat("{0}. ", lineCounter);
contents.Append(nextLine);
contents.AppendLine();
lineCounter++;
if (lineCounter > 3)
{
contents.AppendLine("Only first 3 lines shown.");
break;
}
}
}
DisplayContentsBlock.Text = contents.ToString();
}
}
}
Imports System.Text
Imports System.IO
Imports Windows.Storage.Pickers
Imports Windows.Storage
NotInheritable Public Class BlankPage
Inherits Page
Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
Dim contents As StringBuilder = New StringBuilder()
Dim nextLine As String
Dim lineCounter As Integer = 1
Dim openPicker = New FileOpenPicker()
openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary
openPicker.FileTypeFilter.Add(".txt")
Dim selectedFile As StorageFile = Await openPicker.PickSingleFileAsync()
Using reader As StreamReader = New StreamReader(Await selectedFile.OpenStreamForReadAsync())
nextLine = Await reader.ReadLineAsync()
While (nextLine <> Nothing)
contents.AppendFormat("{0}. ", lineCounter)
contents.Append(nextLine)
contents.AppendLine()
lineCounter = lineCounter + 1
If (lineCounter > 3) Then
contents.AppendLine("Only first 3 lines shown.")
Exit While
End If
nextLine = Await reader.ReadLineAsync()
End While
End Using
DisplayContentsBlock.Text = contents.ToString()
End Sub
End Class
In het volgende voorbeeld ziet u de XAML-code die is gekoppeld aan het vorige voorbeeld.
<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="Display lines from a file."></TextBlock>
<Button Content="Load File" Click="Button_Click_1"></Button>
<TextBlock Name="DisplayContentsBlock"></TextBlock>
</StackPanel>
</Page>
Opmerkingen
Note
In Visual Basic en C# kunt u deze methode aanroepen als een instantiemethode voor elk object van het type <xref:Windows.Storage.IStorageFile>. Wanneer u de syntaxis van de instantiemethode gebruikt om deze methode aan te roepen, laat u de eerste parameter weg. Zie Extension Methods (Visual Basic) of Extension Methods (C# Programming Guide) voor meer informatie.
Van toepassing op
OpenStreamForReadAsync(IStorageFolder, String)
Belangrijk
Deze API is niet CLS-conform.
Hiermee haalt u een stream op voor het lezen uit een bestand in de opgegeven bovenliggende map.
public:
[System::Runtime::CompilerServices::Extension]
static System::Threading::Tasks::Task<System::IO::Stream ^> ^ OpenStreamForReadAsync(Windows::Storage::IStorageFolder ^ rootDirectory, System::String ^ relativePath);
[System.CLSCompliant(false)]
public static System.Threading.Tasks.Task<System.IO.Stream> OpenStreamForReadAsync(this Windows.Storage.IStorageFolder rootDirectory, string relativePath);
[<System.CLSCompliant(false)>]
static member OpenStreamForReadAsync : Windows.Storage.IStorageFolder * string -> System.Threading.Tasks.Task<System.IO.Stream>
<Extension()>
Public Function OpenStreamForReadAsync (rootDirectory As IStorageFolder, relativePath As String) As Task(Of Stream)
Parameters
- rootDirectory
- Windows.Storage.IStorageFolder
Het Windows Runtime Windows.Storage.IStorageFile-object waaruit het bestand moet worden gelezen.
- relativePath
- String
Het pad, ten opzichte van de hoofdmap, naar het bestand waaruit moet worden gelezen.
Retouren
Een taak die de asynchrone leesbewerking vertegenwoordigt.
- Kenmerken
Uitzonderingen
rootDirectory of relativePath is null.
relativePath is leeg of bevat alleen spatietekens.
Het bestand kan niet worden geopend of opgehaald als een stream.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een bestand opent als een Stream in een Windows Store-app en de inhoud ervan leest met behulp van een exemplaar van de klasse StreamReader.
using System;
using System.IO;
using Windows.Storage.Pickers;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace ExampleApplication
{
public sealed partial class BlankPage : Page
{
public BlankPage()
{
this.InitializeComponent();
CreateTestFile();
}
private async void CreateTestFile()
{
StorageFile newFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("testfile.txt");
await FileIO.WriteTextAsync(newFile, "example content in file");
}
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
using (StreamReader reader = new StreamReader(
await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync("testfile.txt")))
{
string contents = await reader.ReadToEndAsync();
DisplayContentsBlock.Text = contents;
}
}
}
}
Imports System.IO
Imports Windows.Storage
NotInheritable Public Class BlankPage
Inherits Page
Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs)
CreateTestFile()
End Sub
Private Async Sub CreateTestFile()
Dim newFile As StorageFile = Await ApplicationData.Current.LocalFolder.CreateFileAsync("testfile.txt")
Await FileIO.WriteTextAsync(newFile, "example content in file")
End Sub
Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
Using reader As StreamReader = New StreamReader(
Await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync("testfile.txt"))
Dim contents As String = Await reader.ReadToEndAsync()
DisplayContentsBlock.Text = contents
End Using
End Sub
End Class
In het volgende voorbeeld ziet u de XAML-code die is gekoppeld aan het vorige voorbeeld.
<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">
<Button Content="Open File" Click="Button_Click_1"></Button>
<TextBlock Name="DisplayContentsBlock"></TextBlock>
</StackPanel>
</Page>
Opmerkingen
Note
In Visual Basic en C# kunt u deze methode aanroepen als een exemplaarmethode voor elk object van het type IStorageFolder. Wanneer u de syntaxis van de instantiemethode gebruikt om deze methode aan te roepen, laat u de eerste parameter weg. Zie Extension Methods (Visual Basic) of Extension Methods (C# Programming Guide) voor meer informatie.