1

ファイルの内容を上書きしようとしていますが、アクセスが拒否され続けます

System.IO.Stream s2 = await Windows.ApplicationModel.Package.Current.InstalledLocation.OpenStreamForWriteAsync("Assets\\xyz.txt", Windows.Storage.CreationCollisionOption.ReplaceExisting);
System.IO.StreamWriter sw = new StreamWriter(s2);

どうすればそれを機能させることができますか?例外は

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.IO.WindowsRuntimeStorageExtensions.<OpenStreamForWriteAsyncCore>d__10.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.IO.WindowsRuntimeStorageExtensions.<OpenStreamForWriteAsyncCore>d__10.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
  at
4

2 に答える 2

3

見た目では、パッケージがインストールされている領域に書き込むことはできません。「アプリのパッケージとデプロイ」から:

WindowsStoreアプリの展開

Windows Storeアプリモデルは、宣言型の状態駆動型プロセスであり、アプリのすべてのインストールと更新のデータと手順を1つのパッケージで提供します。この宣言型モデルでは、デプロイメント操作は信頼できます。パッケージに同梱されているファイルは不変です。つまり、コンピューターに配信されてから変更されていません。パッケージの所有者はカスタムアクションやコードを作成する必要がないため、障害点の数が減ります。

すべてのユーザーのアセットを更新する必要がある場合は、分離されたストレージAPIなどを介して新しいバージョンを公開する必要があるようです。

ユーザー固有のデータを書き込む必要がある場合は、別の場所を選択する必要があります。

于 2013-01-25T18:51:54.617 に答える
0

次のような場所に書き込む必要があります:ApplicationData.Current.TemporaryFolder

于 2014-11-17T21:33:46.453 に答える