2013-08-12 4 views
3

Каков наилучший способ получить удаленный размер файла в vb.net? Недавно я использовал этот код:Получение размера удаленного файла

 Dim Request As System.Net.WebRequest 
     Dim Response As System.Net.WebResponse 
     Dim FileSize As Integer 
     Request = Net.WebRequest.Create("http://my-url.com/file.exe") 
     Request.Method = Net.WebRequestMethods.Http.Get 
     Response = Request.GetResponse 
     FileSize = Response.ContentLength 

С некоторого времени он не работает должным образом, потому что он дает недопустимый размер файла.

Шпатлевка говорит: 1.240.214 байт (действительные), vb.net-х WebRequest говорит: 1.246.314 байт (недействителен!)

Похоже WebRequest использует своего рода кэш ... Есть лучший способ получить удаленный размер файла?

+0

Просто интересно - может ли веб-запрос, возможно, рассчитать в заголовках ответов размер полезной нагрузки, в то время как шпатлевку нет? –

ответ

1

Как насчет сделать запрос HEAD, как это:

Dim req As System.Net.WebRequest = System.Net.HttpWebRequest.Create("http://my-url.com/file.exe") 
req.Method = "HEAD" 

Using resp As System.Net.WebResponse = req.GetResponse() 
    Dim ContentLength As Integer 

If Integer.TryParse(resp.Headers.[Get]("Content-Length"), ContentLength) Then 
    ' Use ContentLength variable here 
    End If 
End Using 

Does, которые дают тот же результат, как замазка?

+0

'ContentLength' возвращает 1.246.314 байт, что означает, что он имеет тот же недопустимый размер, что и для' WebRequest'. Putty's 'ls -l' дает' 1.240.214' байты, свойства WinSCP этого файла также выдают байты '1.240.214' ... – Lucas

+0

Можете ли вы не просто взять необработанные данные из обоих и сравнить, чтобы посмотреть, что фактическая разница вместо того, чтобы пытаться угадать? –

+0

@GeorgeJohnston Нет догадок! Какая разница между одним файлом? Никто. Это зависит только от локального - шпатлевки и удаленного размера файла. Весь запрос к файлу с локального компьютера дает допустимый размер файла, а удаленные компьютеры дают поддельный размер файла. – Lucas

Смежные вопросы