在windows8中创建文件夹被拒绝

本文关键字:拒绝 文件夹 创建 windows8 | 更新日期: 2023-09-27 17:49:19

我使用下面的代码在app安装文件夹中创建文件夹,但我总是收到拒绝访问的异常。

StorageFolder appFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
        if (!await CheckIfFolderExist(appDataFolderName))
        {                
            StorageFolder appDataFolder = await appFolder.CreateFolderAsync(appDataFolderName);
            StorageFolder userFolder = await appDataFolder.CreateFolderAsync(userFolderName);
            StorageFolder contactFolder = await appDataFolder.CreateFolderAsync(contactFolderName);
        }
        else
        {
            StorageFolder appDataFolder = await appFolder.GetFolderAsync(appDataFolderName);
            if (!await CheckIfSubFolderExis(appDataFolderName, userFolderName))
            {
                await appDataFolder.CreateFolderAsync(userFolderName);
            }
            if (!await CheckIfSubFolderExis(appDataFolderName, contactFolderName))
            {
                await appDataFolder.CreateFolderAsync(contactFolderName);
            }
        }
 // Check if the app folder exists
    private async Task<bool> CheckIfFolderExist(string folderName )
    {
        bool folderExist = false;
        try
        {
            StorageFolder appFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
            StorageFolder appDataFolder = await appFolder.GetFolderAsync(folderName);                
            folderExist = true;
            return folderExist;
        }
        catch (FileNotFoundException ex)
        {
            return folderExist;
        }
    }
    // Check if the app subfolder exists
    private async Task<bool> CheckIfSubFolderExis(string folderName,string subFolderName)
    {
        bool subFolderExist = false;
        try
        {
            StorageFolder appFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
            StorageFolder subFolder = await appFolder.GetFolderAsync(subFolderName);
            subFolderExist = true;
            return subFolderExist;
        }
        catch (FileNotFoundException ex)
        {
            return subFolderExist;
        }
    }

有人有想法吗?

在windows8中创建文件夹被拒绝

你不能在你的app data文件夹中创建一个文件夹。你必须使用LocalFolder, RomaingFolder或TemporaryFolder(都在ApplicationData类中找到)

这样做的原因是为了支持软件升级等。为什么你想保存在appdata文件夹-也许我可以建议上面最好的文件夹使用