Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用WebResponse的磁盘上的文件大小?_C#_Asp.net Mvc - Fatal编程技术网

C# 使用WebResponse的磁盘上的文件大小?

C# 使用WebResponse的磁盘上的文件大小?,c#,asp.net-mvc,C#,Asp.net Mvc,是否可以使用webresponse检索磁盘上的文件大小? 如果没有,如何检索文件大小 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(finalUrl); request.AllowAutoRedirect = true; request.KeepAlive = false; request.ProtocolVersion = HttpVersion.Version10; request.ServicePoint.Connec

是否可以使用webresponse检索磁盘上的文件大小? 如果没有,如何检索文件大小

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(finalUrl);
request.AllowAutoRedirect = true;
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.ServicePoint.ConnectionLimit = 24;

//request.Method = "HEAD";
var contentType = string.Empty;

using (WebResponse webResponse = request.GetResponse())
{
    contentType = webResponse.ContentType;
    using (Stream stream = webResponse.GetResponseStream())
    {
        using (MemoryStream memoryStream = new MemoryStream())
        {
            Byte[] buffer = new Byte[1024];
            Int32 bytesRead;
            while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
            {
                memoryStream.Write(buffer, 0, bytesRead);
            }

            documentFile.Data = memoryStream.ToArray();
        }
    }
}

我认为,在下载文件之前,从站点获取文件大小信息的唯一方法是读取
ContentLength
头,并且不能保证服务器提供它

var fileSize = webResponse.ContentLength;
或者下载文件后,可以获取要检索的流的长度大小

var fileSize = memoryStream.Length;

您的意思是要下载的总字节数。下载的数据可能永远不会存储在任何一方的磁盘上,因此在本文中谈论“磁盘上的文件大小”是一个相当令人困惑的术语并且可以根据需要将其转换为Kb或Kb。您可以详细说明场景吗?您是否正在尝试获取一个已提交到端点的文件?或者您在这里尝试执行什么操作?
documentFile
是您计划保存的文件,我想?这样就可以得到字节数了。这应该是磁盘大小的一个很好的指示。如果不够准确,请保存它,然后检查其大小。是的documentFile是我存储的文件,但它似乎与磁盘上的filesize不同。下载文件时为12mb,而ContentLength或Length为2855字节。我尝试过,但与磁盘上的文件大小不同。我错过了什么?试过哪一个?另外,将文件保存到磁盘的位置?webResponse.ContentLength和memoryStream.Length都返回大小,但不返回磁盘上的实际大小。该文件通过服务器上的DocumentFile保存。