9

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:///");

そして、「値が期待される範囲内にありません」を取得しました

InstalledLocation StorageFolderにCreateFileAsync移動できますか?Windows.Storage.ApplicationData.Current.LocalFolderCopyAsync

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 ではアクセスが拒否されますか? それはセキュリティ上の理由によるものですか、それともここで何か間違ったコードを書いていますか?

4

1 に答える 1

15

アプリのインストール ディレクトリは読み取り専用の場所です。また、データ ファイルをインストールした場所に書き込むことはお勧めしません。アプリケーションでのみ使用するためのデータを保存する必要がある場合は、次を使用する必要があります

StorageFolder localFolder = ApplicationData.Current.LocalFolder;

また

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

データの寿命によって異なります。

于 2012-09-03T14:59:56.757 に答える