FileSavePickerUI.TargetFileRequested FileSavePickerUI.TargetFileRequested FileSavePickerUI.TargetFileRequested FileSavePickerUI.TargetFileRequested FileSavePickerUI.TargetFileRequested Event


Fires when the user commits a file to be saved in the file picker.

public : event TypedEventHandler<FileSavePickerUI, TargetFileRequestedEventArgs> TargetFileRequested
// Register
event_token TargetFileRequested(TypedEventHandler<FileSavePickerUI, TargetFileRequestedEventArgs> const& handler) const;

// Revoke with event_token
void TargetFileRequested(event_token const& cookie) const;

// Revoke with event_revoker
TargetFileRequested_revoker TargetFileRequested(auto_revoke_t, TypedEventHandler<FileSavePickerUI, TargetFileRequestedEventArgs> const& handler) const;
public event TypedEventHandler<FileSavePickerUI, TargetFileRequestedEventArgs> TargetFileRequested
Public Event TargetFileRequested As TypedEventHandler (Of FileSavePickerUI, TargetFileRequestedEventArgs)
function onTargetFileRequested(eventArgs){/* Your code */}

fileSavePickerUI.addEventListener("targetfilerequested", onTargetFileRequested);
fileSavePickerUI.removeEventListener("targetfilerequested", onTargetFileRequested);


The File picker sample demonstrates how to respond to a targetfilerequested event handler.

// Event handler
private async void OnTargetFileRequested(FileSavePickerUI sender, TargetFileRequestedEventArgs e)
    // Respond to TargetFileRequested event on the background thread on which it was raised

    // Requesting a deferral allows the app to call another asynchronous method and complete the request at a later time
    var deferral = e.Request.GetDeferral();

    // Create file and assign to TargetFile property
    e.Request.TargetFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(sender.FileName, CreationCollisionOption.GenerateUniqueName);

    // Complete the deferral to let the Picker know the request is finished

// Register for the event
fileSavePickerUI.TargetFileRequested += new TypedEventHandler<FileSavePickerUI, TargetFileRequestedEventArgs>(OnTargetFileRequested);

// Event handler
function onTargetFileRequested(e) {
    var deferral;
    deferral = e.request.getDeferral();

    // Create a file to pass to the file picker which then gives it to the calling app
    Windows.Storage.ApplicationData.current.localFolder.createFileAsync(fileSavePickerUI.fileName).done(function (file) {
            // Assign the resulting file to the targetFile property and complete the deferral to indicate success
        e.request.targetFile = file;
    }, function () {
        // Set the targetFile property to null and complete the deferral to indicate failure
        e.request.targetFile = null;

// Register for the event
fileSavePickerUI.addEventListener("targetfilerequested", onTargetFileRequested, false);

In the example, e contains a TargetFileRequestedEventArgs object.


If your app participates in the File Save Picker contract and a targetfilerequested event fires, your app should create a new storageFile that represents the file the user wants to save. The name of the storageFile you create must match the name of the file specified by the fileName property. The storageFile you create is returned to the app that called the file picker (the calling app) so that the calling app can write content to the file. Learn more about responding to this event in targetFileRequestedEventArgs.


file picker UI is disabled until the providing app has finished responding to this event.

See also