C++/Cx FileOpenPicker 操作

本文介绍了一个使用UWP应用程序进行文件选择和读取的基本示例,通过FileOpenPicker选择.txt文件,并将其复制到本地文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//
// MainPage.xaml.cpp
// Implementation of the MainPage class.
//


#include "pch.h"
#include "MainPage.xaml.h"
#include <ppltasks.h>


using namespace App1;


using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;


using namespace Windows::Storage;
using namespace Windows::Storage::Pickers;
using namespace Windows::Storage::Streams;
using namespace concurrency;




// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238


MainPage::MainPage()
{
InitializeComponent();


auto picker= ref new FileOpenPicker();
picker->CommitButtonText= "Read from a file with ifstream";
picker->ViewMode = PickerViewMode::List;
picker->SuggestedStartLocation = PickerLocationId::DocumentsLibrary;
picker->FileTypeFilter->Append(".txt"); // Required 
picker->FileTypeFilter->Append("*");


Windows::Storage::StorageFolder ^ localFolder= Windows::Storage::ApplicationData::Current->LocalFolder;


task< StorageFile^ > getFileTask ( picker->PickSingleFileAsync() ); 


getFileTask.then( [=] ( StorageFile^ storageFile ) 
{
if ( nullptr == storageFile ) return;


Platform::String ^ destfilename = storageFile->Name;


auto option= Windows::Storage::NameCollisionOption::ReplaceExisting;
create_task( storageFile->CopyAsync( localFolder, destfilename, option)).then([=](StorageFile^ sampleFileCopy) 



}); 
});
}


/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached.  The Parameter
/// property is typically used to configure the page.</param>
void MainPage::OnNavigatedTo(NavigationEventArgs^ e)
{
(void) e; // Unused parameter
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值