Win32::Unicode::File - Unicode string file utility.


SYNOPSIS

  use Win32::Unicode::File;
  
  my $file = "I \x{2665} Perl";
  
  unlinkW $file or die $!;
  copyW $from, $to or die $!;
  moveW $from, $to or die $!;
  file_type f => $file ? "$file is file" : "$file is not file";
  my $size = file_size $file;
  touchW $new_file;


DESCRIPTION

Win32::Unicode::File is Unicode string file utility.


METHODS

new([$mode, $file_name])
Crate a new Win32::Unicode::File instance. At the same time you can open the file to create an instance.
  my $fh = Win32::Unicode::File->new;
  my $fh = Win32::Unicode::File->new($mode, $file_name); # create an instance and open the file

open($mode, $file_name)
like CORE::open, but compatibility is not an argument. can not be pipe open.
  $fh->open('<', $file_name) or die $!;

or

  open $fh, '<', $file_name or die $!;

Be useful mode

  <   = r   = rb
  >   = w   = wb
  >>  = a
  +<  = r+
  +>  = w+
  +>> = a+

close()
like CORE::close.
  $fh->close;

or

  close $fh;

read($buff, $len)
Like CORE::read.
  $fh->read(my $buff, $len) or die $!;

or

  read $fh, my $buff, $len;

readline()
Like CORE::readline.
  my $line = $fh->readline;
  my @line = $fh->readline;

or my $line = readline $fh; my @line = <$fh>;

getc()
Like CORE::getc.
  my $char = $fh->getc;

or

  my $char = getc $fh;

print(@str)
Data write to file.
  $fh->print(@str);
  print $fh @str;

printf($format, @str)
Formatted data write to file.
  $fh->printf('[%s]', $str);
  printf $fh '%d', $str;

write(@str)
Data write to file. alias of $fh->print
  $fh->write(@str);

seek($ofset, $whence)
Like CORE::seek.
  $fh->seek(10, 1);

or

  seek $fh, 1024, 2;

tell()
Like CORE::tell.
  my $current = $fh->tell;

or

  my $current = tell $fh;

eof()
Like CORE::eof.
  if ($fh->eof) {
     # ...snip
  }

or

  if (eof $fh) {
     # ...snip
  }

slurp()
Read all data from the file.
  my $data = $fh->slurp;

binmode($layer)
  $fh->binmode(':encoding(cp932)')

or

  binmode $fh, ':raw :utf8';

Currently available now is only the layer below.

  :raw
  :utf8
  :encoding(foo)

flock
Like CORE::flock
  $fh->flock(2);

unlock
equals to
  $fh->flock(8);

error()
get error message.
  $fh->error;


FUNCTIONS

unlinkW($file)
Like CORE::unlink.
  unlinkW $file or die $!;

copyW($from, $to)
Like File::Copy::copy.
  copyW $from, $to or die $!;

moveW($from, $to)
Like File::Copy::move.
  moveW $from, $to or die $!;

renameW($from, $to)
Alias of moveW.

touchW($file)
Like shell command touch.
  touchW $file or die $!;

statW($file || $fh || $dir || $dh)
Like CORE::stat.
  my @stat = statW $file or die $!;
  my $stat = statW $file or die $!;

or

  my $fh = Win32::Unicode::File->new(r => $file);
  my @stat = statW $fh or die $!;
  my $stat = statW $fh or die $!;

or

  my @stat = statW $dir or die $!;
  my $stat = statW $dir or die $!;

or

  my $dh = Win32::Unicode::Dir->new->open($dir);
  my @stat = statW $dh or die $!;
  my $stat = statW $dh or die $!;

If the array context, CORE:: stat like. However, scalar context case in hashref received.

utimeW($atime, $mtime, $file || $fh)
Like CORE::utime.
  my $rc = utime($atime, $mtime, $file, $fh);

file_type('attribute', $file_or_dir)
Get windows file type
  # attributes
  f => file
  d => directory
  e => exists
  s => system
  r => readonly
  h => hidden
  a => archive
  n => normal
  t => temporary
  c => compressed
  o => offline
  i => not content indexed
  E => encrypted

  if (file_type d => $file_ro_dir) {
     # snip
  }
  elsif (file_type fr => $file_or_dir) { # file type 'file' and 'readonly'
     # snip
  }

file_size($file)
Get file size. near -s $file
  my $size = file_size $file;
  die $! unless defined $size;

filename_normalize($filename)
Normalize the characters are not allowed in the file name. not export.
  use Win32::Unicode::File qw(filename_normalize);
  my $nomalized_file_name = filename_normalize($filename);


AUTHOR

Yuji Shimada <xaicron@cpan.org>


SEE ALSO

the Win32 manpage

the Win32API::File manpage

the Win32::Unicode manpage

the Win32::Unicode::File manpage

the Win32::Unicode::Error manpage


LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

 Win32::Unicode::File - Unicode string file utility.