使用memorystream将文件保存到设备

时间:2017-11-21 10:18:25

标签: file azure xamarin xamarin.forms memorystream

我想知道是否有可能使用xamarin.forms将任何类型的文件下载到设备.. de文件存储在Azure上,我得到文件的Memorystream,这对我的应用程序非常重要。我的问题实际上是2个部分, 如何将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

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

  

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

使用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阅读器)

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

希望这有帮助