有没有一种方法可以将文件(使用filepicker选择)复制到当前正在运行的Metro风格应用的installdir中?我试图用以下方法获得InstallationFolder:

Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current;
Windows.Storage.StorageFolder installedLocation = package.InstalledLocation;


但是在获取InstalledLocation时,总是会出现以下错误:

Error HRESULT E_FAIL has been returned from a call to a COM component.

这可能是调试应用程序/不从商店安装它的问题吗?如何解决此异常?

使用Windows.Storage.CopyAsync(IStroageFolder, ...)应该可以复制文件。 InstalledLocation来自类型StorageFolder。如果有人允许,我是否会有所经验?像安全例外?

最佳答案

InstalledLocation是只读的,但是您可以写入应用程序的数据存储文件夹(ApplicationData.Current.LocalFolder)。

这有效:

var fop = new FileOpenPicker();
fop.FileTypeFilter.Add(".txt");
StorageFile file = await fop.PickSingleFileAsync();
if (file != null)
    await file.CopyAsync(ApplicationData.Current.LocalFolder);


可能还需要检查应用程序清单中的库访问功能。

10-06 00:35