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

为何调用DownloadsFolder下载图片时会在Downloads内新建子文件夹?

问题原因

这个情况其实是UWP的沙箱安全机制在约束你的代码行为。UWP应用默认运行在隔离的沙箱环境里,为了保护用户的文件系统安全,系统不允许应用直接读写Downloads文件夹的根目录。当你调用DownloadsFolder.CreateFileAsync()时,系统会自动在Downloads目录下创建一个以你的应用名称命名的专属子文件夹,然后把文件存到这个子文件夹里——这就是你看到新建子文件夹的核心原因。

解决方案:获取Downloads根目录的访问权限

如果确实需要把文件直接保存到Downloads根目录,你需要完成以下两步配置:

  1. 修改应用清单(Package.appxmanifest)
    打开你的Package.appxmanifest文件,添加broadFileSystemAccess权限。你可以直接编辑XML内容,在<Capabilities>节点下插入:

    <Capability Name="broadFileSystemAccess" />
    

    或者在Visual Studio的可视化编辑器中切换到「功能」选项卡,找到「文件系统」并勾选(部分VS版本可能需要手动编辑XML)。

  2. 开启系统级文件权限
    仅修改清单还不够,你需要在Windows系统设置中给应用手动开启文件访问权限:

    • 打开「设置」→「隐私和安全性」→「文件系统」
    • 找到你的应用,开启“允许此应用访问你的文件系统”的开关
额外说明
  • 你的代码里的CreationCollisionOption.GenerateUniqueName只是用来处理文件名重复的场景(重名时自动生成带后缀的唯一文件名),和创建子文件夹的行为没有关系。
  • broadFileSystemAccess是受限权限,如果你的应用要提交到Microsoft Store,需要在提交时详细说明使用这个权限的具体用途,否则可能会被审核拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:45:02