2012-09-03 66 views
9

我在InstalledLocation试图CreateFileAsync StorageFolder试图在InstalledLocation StorageFolder中尝试CreateFileAsync时,访问被拒绝?

StorageFolder storageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
StorageFile file = await storageFolder.CreateFileAsync("fileNmae", Windows.Storage.CreationCollisionOption.ReplaceExisting); 

我也试过

var storageFolder = await StorageFolder.GetFolderFromPathAsync("ms-appx:///"); 

,并获得“值不在预期范围内”

我可以去当访问被拒绝大约和CreateFileAsyncWindows.Storage.ApplicationData.Current.LocalFolder然后CopyAsync到InstalledLocation StorageFolder?

StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; 
StorageFile file = await storageFolder.CreateFileAsync("fileName", Windows.Storage.CreationCollisionOption.ReplaceExisting); 

StorageFolder installedLocationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
var result = await file.CopyAsync(installedLocationFolder, "fileName", Windows.Storage.NameCollisionOption.ReplaceExisting); 

CreateFileAsync在InstalledLocation StorageFolder给出拒绝访问? 是因为安全原因还是我在这里编码有问题?

回答

14

该应用的安装目录是一个只读位置。另外,不建议您将数据文件写入安装位置。如果你需要存储的数据,这是只对应用程序的使用,你应该使用

StorageFolder localFolder = ApplicationData.Current.LocalFolder; 

Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder; 

根据数据的生命周期。

+0

如果我没有错,安装目录及其子目录是只读位置。 – isa

相关问题