【问题标题】:Xamarin forms - Open file as streamXamarin 表单 - 以流形式打开文件
【发布时间】:2023-03-09 10:55:01
【问题描述】:

这可能是一个非常简单的问题,但当我们谈论流时我总是感到困惑。 我正在尝试在我的 Xamarin Forms 项目的 Android 部分中打开一个文件。 我有一个 Java.IO.File,我想将其转换为流,以便能够使用该简单功能将其发送到 Azure Blob 存储:

        public async Task<string> UploadFileAsync(Stream stream)
        {
        await this.container.CreateIfNotExistsAsync();

        var name = "Photo_" + Guid.NewGuid().ToString();
        var fileBlob = container.GetBlockBlobReference(name);
        await fileBlob.UploadFromStreamAsync(stream);

        return name;
        }

但是,我似乎无法使用 Android 部分的 StreamReader StreamReader 或 OutputStreamWriter。 有没有人遇到同样的问题? 谢谢!

【问题讨论】:

  • 您应该可以只使用 StreamReader。为什么你认为这不起作用?
  • 我确实要使用 StreamReader... 我的错。不知道我上次做错了什么。
  • 已将其更新为答案以供将来参考。

标签: android azure stream xamarin.forms azure-blob-storage


【解决方案1】:

您应该可以只使用 System.IO 中的 StreamReader 类。示例代码可能如下所示:

FileStream fs = new FileStream("photo.jpg", FileMode.Open, FileAccess.Read);

StreamReader r = new StreamReader(fs);

完成后别忘了丢弃它们。

有关如何上传到 Azure 容器的更多详细信息,请查看Xamarin documentation。

【讨论】:

  • System.IO 窗口不是特定的吗?
  • 不,为什么会这样? :)
  • 好吧,我发现不是,但还是有问题。 Xamarin 只有一个文件选择器。您只需要一个文件路径,但该文件选择器在选择时会将整个文件加载到内存中。我不知道如何在 Xamarin 中只获取文件路径。
猜你喜欢
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 2015-09-27
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多