解决 Linux 微信「另存为」对话框只显示两个文件夹的问题
问题现象
在 Ubuntu 系统中使用原生 Linux 版微信(通常为 Flatpak 版本),当收到图片或文件并点击「另存为」时,弹出的文件保存对话框中只能看到两个目录:
- 下载
- xwechat_files
而本来期望看到的是整个用户目录下的所有文件夹,例如:文档、图片、视频、桌面等。如下图所示,对话框中几乎空荡荡,只有寥寥两项。

原因分析
这是因为 Linux 版微信通常以 Flatpak 沙箱形式运行。为了提高安全性,Flatpak 默认限制应用程序只能访问极少数的系统目录(例如 ~/下载 以及应用自己的数据目录 ~/xwechat_files)。其他如 文档、图片、桌面 等目录,微信没有权限访问,因此在「另存为」对话框中自然看不到。
这并非微信的 bug,而是 Flatpak 的权限隔离机制。好处是微信无法随意读取你的所有个人文件,坏处就是保存文件时很不方便。
解决方案
有两种方式可以解决:图形化工具(推荐新手)或终端命令(推荐熟悉命令行的用户)。
方案一:使用 Flatseal 图形化界面
- 安装 Flatseal
打开终端,执行:
flatpak install flathub com.github.tchx84.Flatseal
- 启动 Flatseal
在应用程序菜单中找到并打开 Flatseal。 - 为微信授权
- 在左侧应用列表中找到 WeChat(或
com.tencent.WeChat)并单击。 - 在右侧 Filesystem 区域,打开 All user files 开关(允许微信访问整个用户目录)。
- 或者更精细地,点击「Other files」旁边的加号,添加
/home/wangqiang/文档、/home/wangqiang/图片等具体目录。
- 重启微信
关闭微信再重新打开,再次点击「另存为」,会发现所有常用目录都出现了。
方案二:使用命令行(一次性授权)
如果更习惯使用终端,可以直接执行以下命令,授予微信访问整个用户家目录的权限:
sudo flatpak override com.tencent.WeChat --filesystem=home
如果只想授权特定目录(例如文档和图片):
sudo flatpak override com.tencent.WeChat --filesystem=/home/wangqiang/文档
sudo flatpak override com.tencent.WeChat --filesystem=/home/wangqiang/图片
执行后同样需要重启微信。

临时变通方法(不修改权限)
如果不想修改微信的权限,也可以这样做:
- 在微信聊天窗口中,右键点击文件 → 选择「下载文件」。
- 再次右键同一个文件 → 选择「在文件夹中显示」。
- 文件管理器会打开
~/xwechat_files目录,里面就是已经下载的文件,可以从这里手动复制到任何其他位置。
这个方法不需要任何配置,但每次都要多几步操作。
延伸发现:保存的文件可能没有扩展名
在解决上述问题后,可能会遇到另一个小麻烦:从微信保存的图片,文件名往往只是一串数字或「1」「2」这样的无后缀名称。例如保存了一张图片,文件名叫 1(而不是 1.jpg)。当尝试上传到某些网页(如 DeepSeek)时,即使文件内容本身就是 JPEG,也可能因为缺少扩展名而被文件选择器过滤掉,导致「看不到文件」。
解决办法:批量给无扩展名的图片添加 .jpg 后缀。使用以下命令(安全版,只处理无点号的文件):
cd /path/to/your/images
for f in *; do
[ -f "$f" ] && [[ "$f" != *.* ]] && mv -- "$f" "$f.jpg"
done
这样就能让图片在上传时被正常识别。
总结
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 微信另存为只显示两个文件夹 | Flatpak 沙箱权限限制 | 使用 Flatseal 或命令行开放文件系统权限 |
| 保存的图片没有扩展名 | 微信 Linux 版保存逻辑不完善 | 批量重命名添加 .jpg |
通过以上设置, Linux 微信就能像 Windows 版一样自由选择保存路径了。希望这篇经验对同样使用 Ubuntu + 微信的朋友有帮助。
本文基于 Ubuntu 22.04/24.04 + Flatpak 版微信(com.tencent.WeChat)实测。不同版本可能略有差异,但原理相同。