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

UWP调用DeleteAsync删除被占用文件时是否会抛出异常?

UWP DeleteAsync接口文件占用场景行为说明
  • 结论:调用IStorageItem.DeleteAsync()删除被占用的文件时,会抛出异常
  • 异常详情:抛出的异常类型为winrt::hresult_error,错误码通常为0x80070020,对应系统错误ERROR_SHARING_VIOLATION,即文件共享冲突、被其他进程/当前进程占用
  • 处理建议:调用该异步接口时必须增加异常捕获逻辑,示例代码如下:
winrt::StorageFolder localFolder = winrt::ApplicationData::Current().LocalFolder();
try
{
    winrt::StorageFile targetFile = co_await localFolder.GetFileAsync(L"待删除的文件名.txt");
    co_await targetFile.DeleteAsync(winrt::StorageDeleteOption::PermanentDelete);
    // 此处补充删除成功的后续逻辑
}
catch (const winrt::hresult_error& err)
{
    if (err.code() == 0x80070020)
    {
        // 此处补充文件被占用场景的处理逻辑,例如重试、提示用户等
    }
    else
    {
        // 此处补充其他错误场景的处理逻辑
    }
}
  • 注意事项:如果是当前应用自身占用文件,需要提前关闭所有针对该文件的读写流、文件句柄后再执行删除操作,否则也会触发占用异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:54:05