---
name: "Net::FTPServer::Full::DirHandle"
section: "3pm"
platform: "linux"
package: "libnet-ftpserver-perl"
version: "1.120-1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::FTPServer::Full::DirHandle"
---

# Net::FTPServer::Full::DirHandle(3pm)

The full FTP server personality

## NAME

Net::FTPServer::Full::DirHandle - The full FTP server personality

## SYNOPSIS

```
  use Net::FTPServer::Full::DirHandle;
```

## DESCRIPTION

## 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)](/perl/1.md)
