StreamedFileDataRequestedHandler 代理人

定義

そのファイルが最初にアクセスされたときに StorageFile にデータをストリーミングするメソッドを表します。

public delegate void StreamedFileDataRequestedHandler(StreamedFileDataRequest ^ stream);
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(4277577764, 12257, 19719, 163, 91, 183, 124, 80, 181, 244, 204)]
class StreamedFileDataRequestedHandler : MulticastDelegate
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(4277577764, 12257, 19719, 163, 91, 183, 124, 80, 181, 244, 204)]
public delegate void StreamedFileDataRequestedHandler(StreamedFileDataRequest stream);
var streamedFileDataRequestedHandlerHandler = function(stream){
/* Your code */
}
Public Delegate Sub StreamedFileDataRequestedHandler(stream As StreamedFileDataRequest)

パラメーター

stream
StreamedFileDataRequest

CreateStreamedFileAsync メソッドまたは ReplaceWithStreamedFileAsync メソッドによって作成された StorageFile 内のストリーミング データの要求。

属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

次の簡単な例では、StreamedFileDataRequestedHandler デリゲートのインスタンスを作成する方法を示します。 この例では、このインスタンスが、ファイルが最初にアクセスされたときに CreateStreamedFileAsync によって返された StorageFile のデータ ストリームを生成する方法も示しています。

この簡単な例は、StreamedFileDataRequestedHandler デリゲートを使用するためのプログラミング パターンを示すことを目的としています。 生成しやすいデータを含む小さなファイルの場合、ストリーミング パターンは役に立ちません。

using Windows.Storage;
using Windows.Storage.Streams;

private async void CreateStreamedFile()
{
    // Create a streamed file.
    StorageFile file =
    await StorageFile.CreateStreamedFileAsync("file.txt",
        StreamedFileWriter, null);

    // Prepare to copy the file.
    StorageFolder localFolder = ApplicationData.Current.LocalFolder;
    string newName = "copied_file.txt";

    // Copy the streamed file. At this point,
    // the data is streamed into the source file.
    await file.CopyAsync(localFolder, newName,
        NameCollisionOption.ReplaceExisting);
}

private async void StreamedFileWriter(StreamedFileDataRequest request)
{
    try
    {
        using (var stream = request.AsStreamForWrite())
        using (var streamWriter = new StreamWriter(stream))
        {
            for (int l = 0; l < 50; l++)
            {
                await streamWriter.WriteLineAsync("Data.");
            }
        }
        request.Dispose();
    }
    catch (Exception ex)
    {
        request.FailAndClose(StreamedFileFailureMode.Incomplete);
    }
}

注釈

作成するデリゲートのインスタンスは、CreateStreamedFileAsync メソッドまたは ReplaceWithStreamedFileAsync メソッドによって返された StorageFile のデータ ストリームを生成します。

CreateStreamedFileAsync メソッドまたは ReplaceWithStreamedFileAsync メソッドを StreamedFileDataRequestedHandler のインスタンスと共に使用する場合は、ファイルの作成時にファイルの内容を書き込む代わりに、必要に応じてファイルのデータを提供できます。 つまり、ファイルが最初にアクセスされるまで、ファイルのデータを生成するためのコストのかかる操作を延期できます。

適用対象