【发布时间】:2020-11-04 15:25:36
【问题描述】:
我在使用 Xamarin CrossDownloadManager 打开下载的文件时遇到问题。 我的代码与本教程中的一样:
https://www.youtube.com/watch?v=rcbm6R4e8jQ
主要活动:
public void Downloaded()
{
CrossDownloadManager.Current.PathNameForDownloadedFile = new System.Func<IDownloadFile, string>(file =>
{
//here .doc just for test - full filename is 30.doc, will be changed.
string fileName = Android.Net.Uri.Parse(file.Url).Path.Split('/').Last() + ".doc";
return Path.Combine(ApplicationContext.GetExternalFilesDir(Android.OS.Environment.DirectoryDownloads).AbsolutePath, fileName);
});
}
及下载方法:
public async Task<Stream> DownloadDocument(int id)
{
await Task.Run(() =>
{
var downloadManager = CrossDownloadManager.Current;
var file = downloadManager.CreateDownloadFile(url);
downloadManager.Start(file, true);
});
return null;
}
问题是当我转到“下载”文件夹时无法打开文件。它具有适当的文件大小,但它的行为就像缺少文件类型。消息说“无法打开文件”。 如果我检查它的详细信息,则有类型:文件而不是类型:文档字。 如果我将此文件复制到其他文件夹,我可以在那里毫无问题地打开它。 不知道问题出在哪里:/
【问题讨论】:
-
我在视频中测试了他的代码,得到的文件名为
Unsuccessful。你的名字是一样的吗? -
我的名字是“30”,因为这是我在 uri 中的参数。这就是为什么我在 mainActivity 的文件名中添加“.doc”(仅用于测试,稍后将实现)。当然,我正在下载 .doc 文件。
-
如果您下载的文件名正确,您可以更改其他路径下载文件。
-
我必须保留下载文件夹。看起来文件以正确的名称保存,只是没有扩展名。如果我将此文件移动到另一个文件夹并将其移回“下载”,我可以打开它......我无法在下载后直接打开它。
标签: c# .net xamarin xamarin.android