Net::FSP::Dir - An FSP directory


Net-FSP documentation Contained in the Net-FSP distribution.

Index


Code Index:

NAME

Top

Net::FSP::Dir - An FSP directory

VERSION

Top

This documentation refers to Net::FSP version 0.13

DESCRIPTION

Top

This class represents a file on the server.

METHODS

Top

This class inherits methods name, short_name, type, move, remove, size, time, link and accept from Net::FSP::Entry.

list()

This method returns a list of files and directories in this directory. The entries in the lists are either Net::FSP::File or a Net::FSP::Dir objects for files and directories respectively.

download($target)

Download this whole directory to $target.

change_current()

Change the current directory to this directory.

readme()

Get the readme of this directory.

get_protection()

This method returns the directory's protection. It returns a hash reference with the elements owner, delete, create, mkdir, private, readme, list and rename.

set_protection($mode)

This method changes the permission of directory $directory_name for public users. It's mode argument is consists of two characters. The first byte is + or -, to indicate whether the permission is granted or revoked. The second byte contains a c, d, g, m, l or r for the permission to create files, delete files, get files, create directories, list the directory or rename files. Its return value is the same as get_protection.

TODO

Top

upload($source)

Upload a local directory to the server.

AUTHOR

Top

Leon Timmermans, fawaka@gmail.com

LICENSE AND COPYRIGHT

Top


Net-FSP documentation Contained in the Net-FSP distribution.

package Net::FSP::Dir;

use strict;
use warnings;
use base 'Net::FSP::Entry';
our $VERSION = $Net::FSP::VERSION;

sub list {
	my $self = shift;

	my $dir = $self->name;
	return $self->{fsp}->list_dir($self->name . '/');
}

sub download {
	my ($self, $local_dir) = @_;
	$local_dir = $self->name if not defined $local_dir;

	mkdir $local_dir if not -d $local_dir;
	for my $entry ($self->list) {
		$entry->download("$local_dir/$entry");
	}
	return;
}

sub accept {
	my ($self, $visitor) = @_;
	$visitor->($self);
	for my $entry ($self->list) {
		$entry->accept($visitor);
	}
	return;
}

sub change_current {
	my $self = shift;
	$self->{fsp}->change_dir($self->{name});
	return;
}

sub remove {
	my $self = shift;
	$self->{fsp}->remove_dir($self->{name});
	return;
}

sub readme {
	my $self = shift;
	return $self->{fsp}->get_readme($self->{name});
}

sub get_protection {
	my $self = shift;
	return $self->{fsp}->get_protection($self->{name});
}

sub set_protection {
	my ($self, $mod) = @_;
	return $self->{fsp}->get_protection($self->{name});
}

1;

__END__