将文件复制到metro-style-app的安装目录中

时间:2012-04-25 06:35:25

标签: c# windows-runtime windows-store-apps .net-4.5

有没有办法将文件(使用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类型。如果有人允许或者我会得到某些经验吗?像安全例外?

1 个答案:

答案 0 :(得分: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);

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