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

在.NET MAUI中复制PDF资源到AppData时文件损坏问题排查

PDF文件复制后损坏的解决方法

你代码里的问题出在误用了StreamReader和StreamWriter处理PDF文件——这两个类是专门用来读写文本文件的,而PDF属于二进制格式,用文本方式读写会篡改二进制数据的原始结构,最终导致文件损坏。

正确的做法是直接对二进制流进行复制,不用转换成文本格式,使用Stream.CopyToAsync方法就能安全高效地完成文件复制:

using var stream = await FileSystem.OpenAppPackageFileAsync("CBA2015.pdf");
if (stream != null)
{
    string targetFile = Path.Combine(FileSystem.Current.AppDataDirectory, "CBA2015.pdf");
    using var outputStream = File.OpenWrite(targetFile);
    await stream.CopyToAsync(outputStream);
}

额外提醒两点:

  • 无需引入文本读写类,直接操作原始二进制流即可保证数据完整性
  • CopyToAsync会自动处理所有字节的复制,比手动读写文本再写入的方式更稳定可靠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:01:05