Hi Dan.
Dan Muey wrote:
> Howdy list,
>
> Is there a better way to tell if a file exists than
> $ftp->size() being greater than zero
> Or
> $ftp->ls()
>
> Also if I delete a file with $ftp->delete($file);
> It will return 1 on success but if it returns 0 how can I
> tell if it's because it didn't exist and therefore could not be
> deleted or it existed but couldn't
> be deleted for some reason (permissions. Etc..)
> The best way I came up with is to do a size() before if size
> returns 0 it may not exist or is zero in size. But then that takes
> you back to question 1. Ahhh I'm going in circles!!!
>
> What I'd like to do is simply:
> (WHERE exists() is hopefully a solution to my first question)
>
> if($ftp->exists($file)) {
> $ftp->delete($file);
> if($ftp->exists($file)) { print "Could not delete $file"; }
> else { print "$file is all gone"; }
> } else { print "$file does not exist so I did not even try to
> delete it" }
'size' is the way to do it, but remember that it will return
zero for a file of zero size. What you need is 'defined'.
This little subroutine will fulfil your wishes and make the
code above work.
sub Net::FTP::exists {
my $ftp = shift;
defined $ftp->size(@_);
}
HTH,
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]