2012-09-03 25 views
9

は、私がInstalledLocation StorageFolderにCreateFileAsyncに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:///"); 

を試してみましたが、私は行くことができ

を「値が予想される範囲内に収まっていない」です〜CreateFileAsync in Windows.Storage.ApplicationData.Current.LocalFolder次にCopyAsync to InstalledLocation StorageFolder? 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アクセス拒否を与えますか? これはセキュリティ上の理由からですか、私はここで何か間違ったコーディングをしていますか?

答えて

14

アプリのインストールディレクトリは読み取り専用の場所です。また、インストールされた場所にデータファイルを書き込むことはお勧めしません。あなたはこれが唯一のアプリケーションの使用のためにあるデータを格納する必要がある場合は、データの存続期間に応じて、

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

StorageFolder localFolder = ApplicationData.Current.LocalFolder; 

または

を使用する必要があります。

+0

私が間違っていない場合、インストールディレクトリとそのサブディレクトリは読み取り専用の場所です。 – isa

関連する問題