C# 如何将URI映像路径传递给FileInfo类?

C# 如何将URI映像路径传递给FileInfo类?,c#,image,C#,Image,我有下面的程序将图像转换为字节数组 public byte[] ReadImageFile(string imageLocation) { byte[] imageData = null; FileInfo fileInfo = new FileInfo(imageLocation); long imageFileLength = fileInfo.Length; FileStream

我有下面的程序将图像转换为字节数组

public byte[] ReadImageFile(string imageLocation)
        {
            byte[] imageData = null;
            FileInfo fileInfo = new FileInfo(imageLocation);
            long imageFileLength = fileInfo.Length;
            FileStream fs = new FileStream(imageLocation, FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);
            imageData = br.ReadBytes((int)imageFileLength);
            return imageData;
        }
如果我将该值作为
“D:\\ENSource\\1.png”
传递,则它工作正常

但如果我将值作为“”发送,则会引发异常

不支持URI格式


如何实现这一点?

FileInfo
FileStream
使用本地文件,无法向其中任何一个文件“传递Uri”

要处理Uri,您可以:

  • 将服务器映射到本地驱动器(即,如果服务器支持WebDAV)
  • 使用Http相关类(如
    HttpClient
    WebClient
    )从服务器下载文件并获取字节。即

FileInfo
FileStream
使用本地文件,无法向其中任何一个文件“传递Uri”

要处理Uri,您可以:

  • 将服务器映射到本地驱动器(即,如果服务器支持WebDAV)
  • 使用Http相关类(如
    HttpClient
    WebClient
    )从服务器下载文件并获取字节。即
    • 编辑 请看@Alexei的回复。 他抛出了一个使用webclient的更好(更简单)的解决方案。 我将在这里留下响应,以防有人希望看到查询web服务器的更“详细”的示例

      我刚刚给阿列克谢打了个勾号(他说得很对),但只是为了填上这个

      您与web服务器而不是文件系统通信。 因此,您需要手动从服务器“请求”数据,然后传递结果流

      请参阅以下代码段。 编辑 请看@Alexei的回复。 他抛出了一个使用webclient的更好(更简单)的解决方案。 我将在这里留下响应,以防有人希望看到查询web服务器的更“详细”的示例

      我刚刚给阿列克谢打了个勾号(他说得很对),但只是为了填上这个

      您与web服务器而不是文件系统通信。 因此,您需要手动从服务器“请求”数据,然后传递结果流

      请参阅以下代码段。

      例如,使用
      WebClient
      类从URI位置下载图像。您不能。不支持URI格式。如果要通过internet加载图像,请查看使用
      WebClient
      类从URI位置下载图像。您不能。不支持URI格式。如果你想通过互联网加载图像,请看一看谢谢Alexei。。。var webClient=新的webClient();byte[]imageBytes=webClient.DownloadData(“);感谢Alexei…var webClient=new webClient();byte[]imageBytes=webClient.DownloadData(“);