Jano Svitok
10/27/2007 6:58:00 PM
On 10/27/07, Raymond O'Connor <nappin713@yahoo.com> wrote:
> The net/ftp size method is supposed to return the size of a remote file,
> but when the size of the remote file is > 4GB it seems to return the
> wrong size.
>
> The size of the remote file I'm testing is about 4.5 GB and size()
> returns about 0.5 GB. Anyone having the same problems? Is there
> somewhere I can report this problem?
It works for me. Can you 1. post test code to reproduce, 2. specify
ruby version and operating system?
You may try checking '12345678923456'.to_i as to_i is used to convert
string response to integer.
Finally, try running the ftp command manually, to see the precise ftp
server response. The code in net/ftp strips first three and the last
character. Maybe your server responds in a slightly different format.
For more details see net/ftp source, It's pure ruby and easy to
understand (at least the size method).
Jano
ruby -v:
ruby 1.8.5 (2006-08-25) [i386-mswin32] (one-click, xp sp2)
require 'net/ftp'
require 'test/unit'
class TestFtp < Test::Unit::TestCase
def setup
@ftp = Net::FTP.new('ftp.tuwien.ac.at')
@ftp.login
@ftp.chdir('opsys/linux/Mandrake-iso/2008.0')
end
def test_size
assert_equal 4612227072,
@ftp.size('mandriva-linux-2008.0-free-dvd-x86_64.iso')
end
def teardown
@ftp.close
end
end