http://qs321.pair.com?node_id=326575


in reply to Re: Need help deleting IQ Folders
in thread Need help deleting IQ Folders

I tried but get error message for this code:
foreach $folder (@iqfolder_arr) { print("Printing from inside the last foreach but before rmdir: $fol +der\n"); $ftp_disco->rmtree(['/ep005/egate/client/iq/$folder'], 1, 1) || die + "Error: @{[ $ftp_disco->message ]}\n"; }

Can't locate object method "rmtree" via package "Net::FTP" (perhaps you forgot t o load "Net::FTP"?) at C:/Perl/eg/data/clr_IQ.pl line 86.

so I also tried:
foreach $folder (@iqfolder_arr) { print("Printing from inside the last foreach but before rmdir: $fol +der\n"); rmtree(['/ep005/egate/client/iq/$folder'], 1, 1) || die "Error: @{[ + $ftp_disco->message ]}\n"; }


but got this error: Error: Opening data connection for .. Transfer complete.

Replies are listed 'Best First'.
Re: Re: Re: Need help deleting IQ Folders
by valentin (Abbot) on Feb 04, 2004 at 19:43 UTC
    you need  use File::Path; in front of your script to import the function rmtree. but sure this will not work with ftp. It looks you try with Net::Ftp ftp is not telent. Within ftp try rmdir.
    $ftp->rmdir('your_directory', 1);
    but it is untested.
      I was trying that previously but it did not work. Maybe b/c of the way these IQs are named?
      {RTI3420-EWD923E-RTER4-T4R3}
        I do not think that the name is the reason. Perhaps you have not the right permissions, or you ftpserver does not allow rmdir at all. this should help to find the reason.
        #!/usr/bin/perl use Net::FTP; my $host = 'my.host.com'; my $login = 'login'; my $passwd = 'mypasswd'; my $ftp = Net::FTP->new( $host, Debug => 1) or die "Cannot connect $@"; $ftp->login($login, $passwd) or die "Cannot login ", $ftp->message; $ftp->cwd('your_dir') or die "Cannot change working directory ", $ftp->message; $ftp->rmdir('your_dir', 1) or die $@;
      I tried a couple of different Modules and methods. I will try rmdir.