【问题标题】:Save file to device with memorystream使用内存流将文件保存到设备
【发布时间】:2017-11-21 10:18:24
【问题描述】:

我想知道是否可以使用 xamarin.forms 将任何类型的文件下载到设备。de 文件存储在 Azure 上,我得到了文件的 Memorystream,它对我的​​应用程序非常重要。我的问题实际上分为两部分, 如何将de文件下载到用户的设备上? 以及如何在该类型的默认应用程序(如pdf阅读器)中显示任何类型的文件

这是我尝试过的

MemoryStream memoryStream = AzureDownloader.DownloadFromAzureBlobStorage(null, doc.azure_container, doc.file_path, ref filen, true);

  string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
  string localFilename = doc.filename;
  string localPath = Path.Combine(documentsPath, localFilename);
  File.WriteAllBytes(localPath, memoryStream.ToArray()); // this is a try to save to local storage

任何帮助表示赞赏

【问题讨论】:

    标签: file azure xamarin xamarin.forms memorystream


    【解决方案1】:

    如何将文件下载到用户的设备上?

    使用PCLStorage 作为其跨平台,适用于 iOS 和 Android:

    public async Task CreateRealFileAsync()
    {
        // get hold of the file system
        IFolder rootFolder = FileSystem.Current.LocalStorage;
    
        // create a folder, if one does not exist already
        IFolder folder = await rootFolder.CreateFolderAsync("MySubFolder", CreationCollisionOption.OpenIfExists);
    
        // create a file, overwriting any existing file
        IFile file = await folder.CreateFileAsync("MyFile.txt", CreationCollisionOption.ReplaceExisting);
    
        // populate the file with some text
        await file.WriteAllTextAsync("Sample Text...");
    }
    

    如何在该类型的默认应用程序中显示任何类型的文件 (如pdf阅读器)

    这太宽泛了,可能有多种解决方案,具体取决于您想要实现的目标。

    希望对你有帮助

    【讨论】:

    • 它适用于 pdf 文件。只要路径和文件名正确。例如,您可以使用 "fileName.pdf"
    • 但它在共享项目中有效吗?它也适用于excel文件吗?
    • 是的,它在共享项目中工作,这就是为什么它被称为“PCL”。并且只要涉及文件格式,它就会加载文本或字节数据,您可以根据需要使用这些数据进行处理
    • 等你有共享项目并且你有PCL,所以两者都可能吗?我是 xamarin.forms 的新手。我正在使用共享项目..所以,我让你知道这个代码明天是否有效。谢谢你的回答
    • 对不起,我的错!我的意思是 PCL 不确定共享项目。您可以在共享项目中尝试并了解
    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多