3

有没有办法将文件(使用文件选择器选择)复制到当前运行的 Metro 风格应用程序的安装目录?我试图通过以下方式获取 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。如果允许的话,是否有人有一些经验,或者我会得到什么。像安全例外?

4

1 回答 1

2

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);

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

于 2012-04-25T13:41:33.363 回答