FtpFindFirstFileを使用して、ファイルサイズを取得しようとしているのですが、
WIN32_FIND_DATA構造体に正しく情報が格納されません。
原因として何が考えられるでしょうか?
そもそも、FTPというプロトコルの仕様上、ファイルサイズを得る確実な方法はありません。
ないわけではないのですが、正式な仕様になったのはつい最近で、以前は非公式な仕様でしたし、対応しているサーバはごく少数と言っていいと思います。
では、一般的なFTPクライアントはどうしているのかと言うと、ファイルリストから得られるサイズを解析してます。
Windows上のコマンドプロンプトでdirと打つと、ファイルリストの中にファイルサイズが出てきますが、ここからファイルサイズを得ているのです。
で、このファイルリストの書式はFTP規格で決まっていませんし、サーバとして使われることが多いUnix系OSでは、Windowsとはまったく違う書式になります。
要するに、FTPサーバが、FtpFindFirstFileが理解できる形でのファイルサイズを返していない可能性が高いです。
要約すれば、FtpFindFirstFileではファイルサイズが取得できないサーバです、ということです。
おや、マルチだった。
両方にちゃんとしたレスくださいね。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200712/07120045.txt
もう一個追加。
http://www.play21.jp/board/formz.cgi?id=dixq&resno=12941#12944
遅くなりましたが、回答ありがとうございました。
>FTPサーバが、FtpFindFirstFileが理解できる形でのファイルサイズを返していない可能性が高いです。
→どうもそのようです。とりあえずはサイズ取得不可ということで解決しました。
ツイート | ![]() |