【问题标题】:How do I save an image url to a local file in Windows 8 c#如何在 Windows 8 c# 中将图像 url 保存到本地文件
【发布时间】:2012-10-27 18:40:59
【问题描述】:

基本上,应用程序显示图像,我希望用户能够选择要下载的图像并将其存储在本地。

我有 URL,但我不知道如何将该 URL 与文件选择器结合使用。

【问题讨论】:

标签: c# xaml windows-8 windows-runtime winrt-xaml


【解决方案1】:

您可以使用以下方法将文件从给定的 Uri 下载到使用文件选择器选择的文件中:

private async Task<StorageFile> SaveUriToFile(string uri)
{
    var picker = new FileSavePicker();

    // set appropriate file types
    picker.FileTypeChoices.Add(".jpg Image", new List<string> { ".jpg" });
    picker.DefaultFileExtension = ".jpg";

    var file = await picker.PickSaveFileAsync();
    using (var fileStream = await file.OpenStreamForWriteAsync())
    {
        var client = new HttpClient();
        var httpStream = await client.GetStreamAsync(uri);
        await httpStream.CopyToAsync(fileStream);
        fileStream.Dispose();
    }
    return file;
}

【讨论】:

    【解决方案2】:

    我认为您始终可以将文件作为流读取并一点一点地保存在本地机器上。但我需要说我在 JAVA 中已经做过很多次了,我从来不需要在 C# 中检查这个:)

    【讨论】:

    • 是的,您可以将其作为 BinaryStream 打开,然后使用 BinaryStreamWriter 将蒸汽转储到文件中。但它比它需要的复杂得多。
    【解决方案3】:
    SaveFileDialog myFilePicker = new SaveFileDialog();
    
    //put options here like filters or whatever
    
    if (myFilePicker.ShowDialog() == DialogResult.OK)
    {
        WebClient webClient = new WebClient();
        webClient.DownloadFile("http://example.com/picture.jpg", myFilePicker.SelectedFile);
    }
    

    【讨论】:

    • Windows 8 c#似乎不存在这些。
    • 这是一个地铁应用吗?那么这个答案应该有反对票。
    • 是的,这就是我用 winrt 标记它的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2014-08-13
    • 2017-10-28
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多