1

私の質問は、この質問で尋ねられたものと同じです:

http://…/ファイルサイズを取得

しかし、私の問題は、Content-LengthプロパティにはContent-Length、正確なファイルサイズではなく、応答で返されたヘッダーの値が含まれていることです。

を使用しようとしましFileInfoたが、リモート ファイルではなく、ローカル ファイル名しかパラメーターとして使用できませんでした。

リモート ファイルのサイズをバイト単位またはキロバイト単位で取得する方法を誰か教えてもらえますか?

4

2 に答える 2

2

わかりました、何か試してみます

最初にこのコードを試してください:

//I am assuming Prg.source_path is the url of the file you want
// Something like : http://www.example.com/my_file.zip
HttpWebRequest wrq = (HttpWebRequest)WebRequest.Create(Prg.source_path); 
//You should be getting only the response header
wrq.Method = "HEAD";

using(var wrs = (HttpWebResponse)wrq.GetResponse()){
    //Do something logic here...
    Console.WriteLine("Content Length is : {0}", wrs.ContentLength);
}

ダウンロードしようとしているファイルの URL が、ファイルの直接の URL であることを確認してください。別の場所にリダイレクトされている場合、応答のヘッダーはリダイレクト応答のサイズになります。

そのコードでも正しいファイル サイズを提供できない場合は、リダイレクトされているか、応答が実際に欠陥があり不正確であると推測されます (これはありそうもないことですが、可能性はあります)。

ダウンロードしようとしているファイルの URL、または少なくとも送信および取得している要求と応答を提供できますか?

EDIT 02/04/2013 : この質問も確認してください: CSS、Javascript、および画像の長さはゼロです

Adrian Grigore からの回答を参照して、「コントロール パネル -> Windows の機能 -> World Wide Web サービス -> 共通の HTTP 機能 -> 静的コンテンツ」がチェックされていることを確認してください。そうでない場合は、それを確認し、IIS (またはマシン全体) を再起動して、もう一度やり直してください。

于 2013-03-29T10:27:19.470 に答える