NAME

Net::FTPServer::RO::DirHandle - The anonymous, read-only FTP server personality

SYNOPSIS

use Net::FTPServer::RO::DirHandle;

METHODS

$handle = $dirh->get ($filename);

Return the file or directory $handle corresponding to the file $filename in directory $dirh. If there is no file or subdirectory of that name, then this returns undef.

$dirh = $dirh->parent;

Return the parent directory of the directory $dirh. If the directory is already "/", this returns the same directory handle.

$ref = $dirh->list ([$wildcard]);

Return a list of the contents of directory $dirh. The list returned is a reference to an array of pairs:

[ $filename, $handle ]

The list returned does not include "." or "..".

The list is sorted into alphabetical order automatically.

$ref = $dirh->list_status ([$wildcard]);

Return a list of the contents of directory $dirh and status information. The list returned is a reference to an array of triplets:

[ $filename, $handle, $statusref ]

where $statusref is the tuple returned from the status method (see Net::FTPServer::Handle).

The list returned does not include "." or "..".

The list is sorted into alphabetical order automatically.

($mode, $perms, $nlink, $user, $group, $size, $time) = $handle->status;

Return the file or directory status. The fields returned are:

$mode     Mode        'd' = directory,
                      'f' = file,
                      and others as with
                      the find(1) -type option.
$perms    Permissions Permissions in normal octal numeric format.
$nlink    Link count
$user     Username    In printable format.
$group    Group name  In printable format.
$size     Size        File size in bytes.
$time     Time        Time (usually mtime) in Unix time_t format.

In derived classes, some of this status information may well be synthesized, since virtual filesystems will often not contain information in a Unix-like format.

$rv = $handle->move ($dirh, $filename);

Move the current file (or directory) into directory $dirh and call it $filename. If the operation is successful, return 0, else return -1.

Underlying filesystems may impose limitations on moves: for example, it may not be possible to move a directory; it may not be possible to move a file to another directory; it may not be possible to move a file across filesystems.

$rv = $dirh->delete;

Delete the current directory. If the delete command was successful, then return 0, else if there was an error return -1.

It is normally only possible to delete a directory if it is empty.

$rv = $dirh->mkdir ($name);

Create a subdirectory called $name within the current directory $dirh.

$file = $dirh->open ($filename, "r"|"w"|"a");

Open or create a file called $filename in the current directory, opening it for either read, write or append. This function returns a IO::File handle object.

AUTHORS

Richard Jones (rich@annexia.org).

COPYRIGHT

Copyright (C) 2000 Biblio@Tech Ltd., Unit 2-3, 50 Carnwath Road, London, SW6 3EG, UK

SEE ALSO

Net::FTPServer(3), perl(1)