我的应用程序在Resources\Raw\helpfile.pdf
下有一个PDF帮助文件。在Android上,应该通过将其“发送”到Acrobat Reader来打开(前提是它安装在设备上)。
我尝试了一个类似“从捆绑文件写入应用程序数据文件夹”的编码,显示为here:
string targetpath = System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, "helpfile.pdf");
if (targetpath != null
&& File.Exists(targetpath))
{
File.Delete(targetpath); // the help file could be newer
}
var stream = await FileSystem.Current.OpenAppPackageFileAsync("helpfile.pdf");
StreamReader reader = new StreamReader(stream);
var content = await reader.ReadToEndAsync();
reader.Close();
FileStream outputStream = System.IO.File.OpenWrite(targetpath);
StreamWriter streamWriter = new StreamWriter(outputStream);
await streamWriter.WriteAsync(content);
streamWriter.Close();
await Launcher.Default.OpenAsync(new OpenFileRequest("helpfile.pdf", new ReadOnlyFile(targetpath)));
在安装了Acrobat Reader的Android模拟器(API 33)上,Reader打开,但除了(正确数量的)页制动器之外,文件为空。
可能是var content = await reader.ReadToEndAsync()
的问题,因为它提供了一个字符串,这并不代表正确的编码的pdf文件。
是否有其他方法将资源复制到可访问的路径?
1条答案
按热度按时间oyxsuwqo1#
使用
BinaryWriter
将pdf文件复制到AndroidAppDataDirectory
: