/ / मैं पर्ल का उपयोग करके एफ़टीपी पर एक फ़ाइल का आकार कैसे जांच सकता हूं? - पर्ल, एफटीपी

मैं पर्ले का उपयोग कर एफ़टीपी पर एक फ़ाइल के आकार की जांच कैसे कर सकता हूं? - पर्ल, एफटीपी

मेरे पास एफ़टीपी पर्ल स्क्रिप्ट है और मैं यह सुनिश्चित करना चाहता हूंक्या फ़ाइल स्थानांतरण दूरस्थ सर्वर पर स्थानांतरित होने वाले बाइट्स की संख्या की जाँच करके पूरा हो गया है, स्थानीय सर्वर में फ़ाइल के वास्तविक बाइट्स के बराबर है। मैं इसे कैसे पूरा कर सकता हूं?

यहां "मेरे पास अब तक क्या है:

 my $ftp = Net::FTP->new($host, Debug => 1)
or die "Could not connect to "$host": $@";

$ftp->login($user, $pw)
or die sprintf "Could not login: %s", $ftp->message;

$ftp->cwd($path)
or die sprintf "Could not login: %s", $ftp->message;

$ftp->ls;

$ftp->binary;

$ftp->get($file)
or die sprintf "Could not login: %s", $ftp->message;

उत्तर:

उत्तर № 1 के लिए 6

डॉक्स से, आप आकार () का उपयोग कर सकते हैं

आकार (फ़ाइल)  के लिए बाइट्स में आकार देता हैदूरस्थ सर्वर पर संग्रहीत फ़ाइल के रूप में दी गई है।  नोट: रिपोर्ट किया गया आकार रिमोट पर संग्रहीत फ़ाइल का आकार है सर्वर। यदि फ़ाइल ASCII में सर्वर से बाद में स्थानांतरित हो जाती है मोड और रिमोट सर्वर और स्थानीय मशीन के बारे में अलग-अलग विचार हैं "लाइन का अंत" फिर स्थानांतरण के बाद स्थानीय मशीन पर फ़ाइल का आकार अलग हो सकता है।

कोड:

my $host="127.0.0.1";
my $user="anonymous";
my $pw = "asdfsf";
my $path="pub";
my $file="file";
my $ftp = Net::FTP->new($host, Debug => 0)
or die "Could not connect to "$host": $@";

$ftp->login($user, $pw) or die sprintf "Could not login: %s", $ftp->message;
$ftp->cwd($path) or die sprintf "Could not login: %s", $ftp->message;
$ftp->binary;
print $ftp->size($file) or die sprintf "Could not login: %s", $ftp->message;
$ftp->quit();

जवाब के लिए 3 № 2
print "FTP size = ", $ftp->size($file), "n";
print "Local size = ", (-s $file), "n";