WindowsRuntimeStorageExtensions.OpenStreamForReadAsync Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
OpenStreamForReadAsync(IStorageFile) |
Pobiera strumień do odczytu z określonego pliku. |
OpenStreamForReadAsync(IStorageFolder, String) |
Pobiera strumień do odczytu z pliku w określonym folderze nadrzędnym. |
OpenStreamForReadAsync(IStorageFile)
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Pobiera strumień do odczytu z określonego pliku.
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)
Parametry
- windowsRuntimeFile
- IStorageFile
Obiekt środowisko wykonawcze systemu Windows IStorageFile do odczytu.
Zwraca
Zadanie reprezentujące operację odczytu asynchronicznego.
- Atrybuty
Wyjątki
windowsRuntimeFile
to null
.
Nie można otworzyć ani pobrać pliku jako strumienia.
Przykłady
W poniższym przykładzie pokazano, jak otworzyć plik jako element Stream w aplikacji ze Sklepu Windows i odczytać jego zawartość przy użyciu wystąpienia StreamReader klasy.
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
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="Display lines from a file."></TextBlock>
<Button Content="Load File" Click="Button_Click_1"></Button>
<TextBlock Name="DisplayContentsBlock"></TextBlock>
</StackPanel>
</Page>
Uwagi
Uwaga
W języku Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia w dowolnym obiekcie typu IStorageFile. Gdy w celu wywołania tej metody jest używana składnia metody wystąpienia, należy pominąć pierwszy parametr. Aby uzyskać więcej informacji, zobacz Metody rozszerzeń (Visual Basic) lub Metody rozszerzeń (Przewodnik programowania w języku C#).
Dotyczy
OpenStreamForReadAsync(IStorageFolder, String)
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Pobiera strumień do odczytu z pliku w określonym folderze nadrzędnym.
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)
Parametry
- rootDirectory
- IStorageFolder
Obiekt środowisko wykonawcze systemu Windows IStorageFile zawierający plik do odczytu.
- relativePath
- String
Ścieżka względem folderu głównego do pliku do odczytu.
Zwraca
Zadanie reprezentujące operację odczytu asynchronicznego.
- Atrybuty
Wyjątki
rootDirectory
lub relativePath
to 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 element Stream w aplikacji ze Sklepu Windows i odczytać jego zawartość przy użyciu wystąpienia StreamReader klasy.
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
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">
<Button Content="Open File" Click="Button_Click_1"></Button>
<TextBlock Name="DisplayContentsBlock"></TextBlock>
</StackPanel>
</Page>
Uwagi
Uwaga
W języku Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia w dowolnym obiekcie typu IStorageFolder. Gdy w celu wywołania tej metody jest używana składnia metody wystąpienia, należy pominąć pierwszy parametr. Aby uzyskać więcej informacji, zobacz Metody rozszerzeń (Visual Basic) lub Metody rozszerzeń (Przewodnik programowania w języku C#).
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla