You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP无法读写文件:HRESULT 0x80070199错误排查求助

UWP写入文件时出现“无法访问APPX文件,因为其未按预期加密(HRESULT: 0x80070199)”错误的解决思路

问题描述

执行UWP文件写入操作时触发以下异常:

抛出异常: System.Exception(位于System.Private.CoreLib.dll中)
System.Exception: 无法访问APPX文件,因为其未按预期加密(HRESULT: 0x80070199)

使用记事本打开创建的文件时也会出现相同错误提示,相关代码如下:

public static async void CreateDirectory(string name)
{
    IReadOnlyList<IStorageItem> itemsList = await DirectoriesFolder.GetItemsAsync();
    int newId = itemsList.Count + 1;
    StorageFolder newDir = await DirectoriesFolder.CreateFolderAsync(newId.ToString());
    StorageFile cfgFile = await newDir.CreateFileAsync("DIRECTORYDATADONOTMODIFYORDELETETHISFILE.ddsf");
    
    try
    {
        var buffer = Windows.Security.Cryptography.CryptographicBuffer.ConvertStringToBinary("dupa", Windows.Security.Cryptography.BinaryStringEncoding.Utf8);
        //DirectoryConfigJson(newId, name)
        await FileIO.WriteBufferAsync(cfgFile, buffer); // this causes error

    } catch(Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.ToString());
    }
    ObservableCollection<DirFile> dfList = new ObservableCollection<DirFile>();
}

解决思路及方案

  1. 检查目标目录权限
    UWP应用的APPX安装目录(如Package.Current.InstalledLocation)是只读的,且受系统加密保护,无法写入数据。如果你的DirectoriesFolder指向该目录,就会触发此错误。需将目标目录改为应用可写入的区域,比如应用数据目录:

    // 替换为本地应用数据目录
    StorageFolder DirectoriesFolder = ApplicationData.Current.LocalFolder;
    
  2. 显式指定文件创建选项
    创建文件时明确指定冲突处理策略,避免因文件已存在或权限问题引发异常:

    StorageFile cfgFile = await newDir.CreateFileAsync(
        "DIRECTORYDATADONOTMODIFYORDELETETHISFILE.ddsf", 
        CreationCollisionOption.ReplaceExisting
    );
    
  3. 修正异步方法签名
    使用async void会导致异常处理不可控,建议改为async Task:

    public static async Task CreateDirectory(string name)
    {
        // 原有逻辑保持不变
    }
    

内容的提问来源于stack exchange,提问作者Trzmi3l

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 12:45:33