我使用bot API v15.0.0.0并使用此代码从用户下载了文件(照片,文档,音频等),但是当我运行时,文件未打开且文件大小为0 KB。
var message = update.Message;
else if (message.Type == MessageType.Photo) {
var file = bot.GetFileAsync(message.Photo.LastOrDefault().FileId);
var fileName = file.Result.FileId + "." + file.Result.FilePath.Split('.').Last();
using(var saveImageStream = File.Open(fileName, FileMode.Create))
{
bot.DownloadFileAsync(file.Result.FilePath, saveImageStream);
}
bot.SendTextMessageAsync(chatId, "Image save");
}
答案 0 :(得分:0)
saveImageStream
在异步DownloadFileAsync
有时间写入流之前被废弃。
代码应等待异步函数调用,并避免进行阻塞调用,例如.Result
或.Wait()
//...
var file = await bot.GetFileAsync(message.Photo.LastOrDefault().FileId);
var fileName = file.FileId + "." + file.FilePath.Split('.').Last();
using(var saveImageStream = File.Open(fileName, FileMode.Create)) {
await file.FileStream.CopyToAsync(saveImageStream);
}
await bot.SendTextMessageAsync(chatId, "Image save");
//...
花点时间查看Bot Code Examples
https://github.com/TelegramBots/Telegram.Bot/tree/master/src/Telegram.Bot