0

次のコードがあります

    // Point to c:\users\yancheng\documents\visual studio 2012\Projects\App5\App5\bin\x86\Debug\AppX
    StorageFolder storageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;

    StorageFile file = await storageFolder.CreateFileAsync("1000.txt");

    if (file != null)
    {
        using (IRandomAccessStream writeStream = await file.OpenAsync(FileAccessMode.ReadWrite))
        {
            using (DataWriter dataWriter = new DataWriter(writeStream))
            {
                dataWriter.WriteInt32(1000);
            }
        }
    }

を通じてすべての権限を有効にしましPackage.appxmanifestた。UnauthorizedAccessExceptionただし、なぜまだstorageFolder.CreateFileAsync.

私が見逃していた他のものはありますか?

4

2 に答える 2

2

アプリのインストールフォルダーにファイルを作成しようとしています。この場所は読み取り専用の場所です(http://msdn.microsoft.com/en-us/library/windows/apps/hh967755.aspxを参照)。

奇妙なことに、このフォルダーにファイルをコピーしてそこからファイルを削除することは、アプリがVisual Studioによってインストールされた場合に可能です。これは、MicrosoftConnectのバグとして報告したものです。全体として、アプリはインストールフォルダのコンテンツを変更できないようにする必要があります。

アプリは、ApplicationDataおよびKnownFoldersを介して到達したフォルダーへの書き込みのみが許可されます。後者の場合、対応する機能とファイルタイプを宣言する必要があります。

于 2012-10-30T07:23:56.510 に答える
1

上記のコメントから、package.appxmanifest の「ドキュメント ライブラリ」機能を確認したと思います。

StorageFolder.CreateFileAsyncのドキュメントのコメントを確認してください。「ライブラリやファイル グループなどの仮想フォルダーにファイルを作成しようとすると、この方法は失敗する可能性があります。」次に、「例」セクションで、Windows.Storage.KnownFolders.documentsLibrary.createFileAsync() を使用してドキュメント ライブラリに新しいファイルを作成する別の方法を示します。それを試してみて、それが機能するかどうかを確認できますか?

于 2012-10-25T03:37:29.140 に答える