---
name: "NetSDS::Util::File"
section: "3pm"
platform: "linux"
package: "libnetsds-util-perl"
version: "1.045-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/NetSDS::Util::File"
---

# NetSDS::Util::File(3pm)

file related utilities

## NAME

NetSDS::Util::File - file related utilities

## SYNOPSIS

```
        use NetSDS::Util::File qw(file_read);
        my $passwd = file_read('/etc/passwd');
        file_move('/etc/passwd', '/tmp/find_this');
```

## DESCRIPTION

`"NetSDS::Util::File"` module contains some routines for files and directories processing tasks like creating, reading, writing, copying and moving files and catalogs.

This module of cource uses such well known things like File::Spec, File::Path, File::Copy and others.

## EXPORTED FUNCTIONS

- **is\_handle($var)** - check if argument is a file handle

  Parameters: some variable

  Returns: 1 if it's file handle or undef otherwise

  ```
          if (is_handle($var)) {
                  reset_handle($fh);
          }
  ```

- **reset\_handle($fh)** - reset file handle

  Parameters: file handle

  Returns: nothing

  This function tries to set filehandle to begin of file and set binmode on it.

  ```
          my $fh = file_open('/etc/passwd');
          ...
          do something with file
          ...
          reset_handle($fh); # We can read it from the beginning
  ```

- **file\_open($file)** - open file

  Parameters: file name or file handle

  Returns: file handle

  This function provides unified API for opening files.

  ```
          my $f = file_open('/etc/passwd');
  ```

- **file\_read($file)** - read file to scalar

  Parameters: file name or file handle

  Returns: scalar content of file

  This function provides ability to read file content to scalar variable.

  ```
          my $data = file_read('/etc/passwd');
          print "Passwords file: $data\n";
  ```

- **file\_write($file, $data)** - write scalar data to file

  Parameters: file name or open file handle

  Returns: length of written data or undef in case of error

  ```
          my $data = 'This should be file';
          file_write('/tmp/file.dat', $data);
  ```

- **file\_copy($in\_file, $out\_file)** - copy file

  Parameters: input file name, output file name

  Returns:

  This function copy file to new location.

- **file\_move($in\_file, $out\_file)** - move file

  Parameters: input file name, output file name

  Returns: 1 or undef

  This function moves old file to new location.

- **file\_temp($dir)** - create temporary file

  Creates new temp file and return its handle

- **dir\_create($dir)** - create directory with parents

  Parameters: directory name

  Returns: directory name or undef

  ```
          # Will create all parent catalogs if necessary
          dir_create('/var/log/NetSDS/xxx');
  ```

- **dir\_delete($dir)** - remove directory recursive

  Parameters: directory name

  Returns: dir name or undef if error

  ```
          print "We need no libs!";
          dir_delete('/usr/lib');
  ```

- **dir\_read($dir, $ext)** - read files list from catalog

  Parameters: directory name, extension of files to read

  Returns: list of files in catalog

  ```
          my @logs = @{ dir_read('/var/log/httpd', 'log') };
          print "Logs are: " . join (', ', @logs);
  ```

- **dir\_read\_recursive($dir, $ext, \[$res\])** - read all files list recursive

  Parameters: `$start` catalog, `$extension`

  Returns: list of files with extension from parameters

  ```
          my $tpls = dir_read_recursive('/etc/NetSDS', 'tmpl');
          foreach my $tpl (@$tpls) {
                  pritn "Template: $tpl\n";
          }
  ```

- **exec\_external($prog, \[$param1, ... $paramN\])** - execute external program

  Parameters: pragram name, arguments list (see perldoc -f system)

  Returns: 1 if ok, undef otherwise

  This function calls **system()** with given parameters and returns 1 if everything happened correctly (program executed and returned correct result).

  ```
          if (exec_external('/bin/rm', '-rf', '/')) {
                  print "Hey! We removed the world!";
          }
  ```

## EXAMPLES

None yet

## BUGS

Unknown yet

## SEE ALSO

IO::Handle, IO::Scalar, IO::File, File::Spec, File::Copy, File::Path, **system()**

## TODO

1\. Implement more detailed error handling

## AUTHOR

Valentyn Solomko \<pere@pere.org.ua\>

Michael Bochkaryov \<misha@rattler.kiev.ua\>
