FTPサーバにあるファイルのサイズを取得するには?

解決


VCユーザ  2007-12-27 21:49:08  No: 67260

FtpFindFirstFileを使用して、ファイルサイズを取得しようとしているのですが、 
WIN32_FIND_DATA構造体に正しく情報が格納されません。 
原因として何が考えられるでしょうか?


シャノン  2007-12-27 23:19:06  No: 67261

そもそも、FTPというプロトコルの仕様上、ファイルサイズを得る確実な方法はありません。
ないわけではないのですが、正式な仕様になったのはつい最近で、以前は非公式な仕様でしたし、対応しているサーバはごく少数と言っていいと思います。

では、一般的なFTPクライアントはどうしているのかと言うと、ファイルリストから得られるサイズを解析してます。
Windows上のコマンドプロンプトでdirと打つと、ファイルリストの中にファイルサイズが出てきますが、ここからファイルサイズを得ているのです。
で、このファイルリストの書式はFTP規格で決まっていませんし、サーバとして使われることが多いUnix系OSでは、Windowsとはまったく違う書式になります。
要するに、FTPサーバが、FtpFindFirstFileが理解できる形でのファイルサイズを返していない可能性が高いです。
要約すれば、FtpFindFirstFileではファイルサイズが取得できないサーバです、ということです。


シャノン  2007-12-28 00:48:41  No: 67262

おや、マルチだった。
両方にちゃんとしたレスくださいね。

http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200712/07120045.txt


keichan  2007-12-28 02:42:28  No: 67263

もう一個追加。

http://www.play21.jp/board/formz.cgi?id=dixq&resno=12941#12944


VCユーザ  2008-01-15 02:00:28  No: 67264

遅くなりましたが、回答ありがとうございました。
>FTPサーバが、FtpFindFirstFileが理解できる形でのファイルサイズを返していない可能性が高いです。
→どうもそのようです。とりあえずはサイズ取得不可ということで解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加