UnauthorizedAccessException during storageFolder.CreateFileAsync

瘦欲@ 提交于 2019-12-31 05:14:09

问题


I have the following piece of code

    // 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);
            }
        }
    }

I have enabled all permission through Package.appxmanifest. However, I am not sure why I am still getting UnauthorizedAccessException during storageFolder.CreateFileAsync.

Any other things I had missed out?


回答1:


You are trying to create a file in the installation folder of the app. This location is a read-only location (see http://msdn.microsoft.com/en-us/library/windows/apps/hh967755.aspx).

Strangely copying files to this folder and deleting files from it is possible if the app was installed by Visual Studio, what I reported as a bug in Microsoft Connect. All in all Apps should not be able to change any content of the installation folder.

Apps are only allowed to write to the folders reached through ApplicationData and the KnownFolders. In latter case corresponding capabilities and file types must be declared.




回答2:


From your comments above, I'm assuming that you've checked the "Documents Library" capability in the package.appxmanifest.

Check out the remarks in the documentation for StorageFolder.CreateFileAsync. It says: "If you try to create a file in a virtual folder like a library or a file group, this method may fail." Then in the Example section, it shows a different way to create a new file in the Documents library using Windows.Storage.KnownFolders.documentsLibrary.createFileAsync(). Can you try that and see if it works?



来源:https://stackoverflow.com/questions/13060857/unauthorizedaccessexception-during-storagefolder-createfileasync

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!