Uwp storageFolder.CreateFileAsync引发UnauthorizedAccessException

Uwp storageFolder.CreateFileAsync引发UnauthorizedAccessException,uwp,windows-store-apps,.doc,unauthorizedaccessexcepti,storagefile,Uwp,Windows Store Apps,.doc,Unauthorizedaccessexcepti,Storagefile,我正在创建一个UWP应用程序,其中我将文件存储在本地文件夹中。 在我尝试保存.doc文件之前,一切正常 1) 我正在使用扩展名保存文件(例如:filename.mp3、filename.flv、filename.png) 2) 保存此文件时,我没有收到任何异常 3) 但当我试图保存.doc或.docx文件,例如“filename.doc”时,我得到了“UnauthorizedAccessException”异常 4) 这里最重要的是,如果我尝试以文件名“filename”而不是“filename

我正在创建一个UWP应用程序,其中我将文件存储在本地文件夹中。 在我尝试保存.doc文件之前,一切正常

1) 我正在使用扩展名保存文件(例如:filename.mp3、filename.flv、filename.png)

2) 保存此文件时,我没有收到任何异常

3) 但当我试图保存.doc或.docx文件,例如“filename.doc”时,我得到了“UnauthorizedAccessException”异常

4) 这里最重要的是,如果我尝试以文件名“filename”而不是“filename.doc”保存同一个文件,而不使用扩展名,那么它工作正常,不会引发任何异常

5) 只有在使用扩展名“filename.doc”保存时,我才会遇到异常,这也仅适用于“.doc”和“.docx”文件类型

这是密码

StorageFolder fileFolder = await HelperFunctions.GetSubFolder(4);
        fileName = fileName + file.FileType;
        StorageFile storageFile = await fileFolder.CreateFileAsync(fileName);
        IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read);

        using (IRandomAccessStream tempStream = await storageFile.OpenAsync(FileAccessMode.ReadWrite))
        {
            await RandomAccessStream.CopyAndCloseAsync(fileStream.GetInputStreamAt(0), tempStream.GetOutputStreamAt(0));
        }
下面是GetSubFolder方法

     public static async Task<StorageFolder> GetSubFolder(int type)
        {
            StorageFolder mainFolder = ApplicationData.Current.LocalFolder;
            Storage

            Folder subFolder;

        if (type == 0)
        {
            var result = await mainFolder.TryGetItemAsync(Constants.TextNotesFilesFolderName);

            //creating seperate folder for text files if not exist
            if (result == null)
                subFolder = await mainFolder.CreateFolderAsync(Constants.TextNotesFilesFolderName);
            else
                subFolder = await mainFolder.GetFolderAsync(Constants.TextNotesFilesFolderName);

            return subFolder;
        }
        else if (type == 1)
        {
            var result = await mainFolder.TryGetItemAsync(Constants.AudioFilesFolderName);

            //creating seperate folder for audio files if not exist
            if (result == null)
                subFolder = await mainFolder.CreateFolderAsync(Constants.AudioFilesFolderName);
            else
                subFolder = await mainFolder.GetFolderAsync(Constants.AudioFilesFolderName);

            return subFolder;
        }
        else if (type == 2)
        {
            var result = await mainFolder.TryGetItemAsync(Constants.ImageFilesFolderName);

            //creating seperate folder for image files if not exist
            if (result == null)
                subFolder = await mainFolder.CreateFolderAsync(Constants.ImageFilesFolderName);
            else
                subFolder = await mainFolder.GetFolderAsync(Constants.ImageFilesFolderName);

            return subFolder;
        }
        else if (type == 3)
        {
            var result = await mainFolder.TryGetItemAsync(Constants.ChecklistFilesFolderName);

            //creating seperate folder for checklist files if not exist
            if (result == null)
                subFolder = await mainFolder.CreateFolderAsync(Constants.ChecklistFilesFolderName);
            else
                subFolder = await mainFolder.GetFolderAsync(Constants.ChecklistFilesFolderName);

            return subFolder;
        }

        else
        {
            var result = await mainFolder.TryGetItemAsync(Constants.FileCardsFolderName);

            //creating seperate folder for text files if not exist
            if (result == null)
                subFolder = await mainFolder.CreateFolderAsync(Constants.FileCardsFolderName);
            else
                subFolder = await mainFolder.GetFolderAsync(Constants.FileCardsFolderName);

            return subFolder;
        }
    }
公共静态异步任务GetSubFolder(int类型)
{
StorageFolder mainFolder=ApplicationData.Current.LocalFolder;
存储
文件夹子文件夹;
如果(类型==0)
{
var result=await mainFolder.TryGetItemAsync(Constants.TextNotesFilesFolderName);
//为文本文件创建单独的文件夹(如果不存在)
如果(结果==null)
subFolder=await main folder.CreateFolderAsync(Constants.TextNotesFilesFolderName);
其他的
subFolder=await main folder.GetFolderAsync(Constants.TextNotesFilesFolderName);
返回子文件夹;
}
else if(类型==1)
{
var result=await mainFolder.TryGetItemAsync(Constants.audioFileFolderName);
//为音频文件创建单独的文件夹(如果不存在)
如果(结果==null)
subFolder=await main folder.CreateFolderAsync(Constants.AudioFilesFolderName);
其他的
subFolder=await mainFolder.GetFolderAsync(Constants.AudioFilesFolderName);
返回子文件夹;
}
else if(类型==2)
{
var result=await mainFolder.TryGetItemAsync(Constants.imageFileFolderName);
//为图像文件创建单独的文件夹(如果不存在)
如果(结果==null)
subFolder=wait mainFolder.CreateFolderAsync(Constants.imageFileFolderName);
其他的
subFolder=wait mainFolder.GetFolderAsync(Constants.imageFileFolderName);
返回子文件夹;
}
else if(类型==3)
{
var result=await mainFolder.TryGetItemAsync(Constants.checkListFileFolderName);
//为清单文件创建单独的文件夹(如果不存在)
如果(结果==null)
subFolder=await main folder.CreateFolderAsync(Constants.checkListFileFolderName);
其他的
subFolder=await main folder.GetFolderAsync(Constants.ChecklistFilesFolderName);
返回子文件夹;
}
其他的
{
var result=await mainFolder.TryGetItemAsync(Constants.FileCardsFolderName);
//为文本文件创建单独的文件夹(如果不存在)
如果(结果==null)
子文件夹=wait main folder.CreateFolderAsync(Constants.FileCardsFolderName);
其他的
subFolder=await main folder.GetFolderAsync(Constants.FileCardsFolderName);
返回子文件夹;
}
}
谁能帮我解决这个问题。 提前感谢,,
Noorul.

你能在
fileName=fileName+file.FileType中给出文件名吗你能给出文件夹路径吗?文件夹路径“C:\Users\User1\AppData\Local\Packages\8ba23e35-0038-47d9-a34b-0aea5001fea7\u vaa7z6zwjw9vp\LocalState\FileCardFiles”文件名“1067da5e-af8d-42f6-9272-ad6bf9a0d53d.docx”,我正在通过GUID创建此文件名,并且正在检查它是否已经在存储中可用。我认为它不会太长。