有没有一种方法可以将文件(使用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);
可能还需要检查应用程序清单中的库访问功能。