The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Win32::FindFile - simple unicode directory reader under Win32

SYNOPSIS

  use Win32::FindFile;
  use bytes;
  
  my @txt_files = FindFile( "*.txt" );
  my @dir_content = ReadDir( "." );

  # and finally
  # print entire directory content in unicode 
  #
  for ( @dir_content ){
        next unless $file->is_entry # skip over '.', '..'
        next if $file->is_hidden; # skip over hidden files
        next if $file->is_system; # etc

        next if $file->ftCreationTime   > time -10; # skip over files created recently
        next if $file->ftLastWriteTime  > time -10;
        next if $file->ftLastAccessTime > time -10; 

        next if $file->FileSize == 0; # 

        print $file->relName( "$dirname" ), "\n" ; # same as "dirname/$file" (Unix style)
        print $file->relName( "$dirname", "\\" ), "\n" ; # same as "dirname\\$file" (Win style)

        print $file, "\n"; # $file->cFileName
        print $file->dosName, "\n";

        my $s = $file->dwFileAttributes; # Get all attribytes
  };

  print "Current directory is ", GetCurrentDirectory(), "\n";

DESCRIPTION

        Win32::FindFile are simple tool for reading unicode dir content. It call kernel32.dll unicode functions
        FindFirstFileW, FindNextFileW, and covert UTF-16 to utf8 and back there is needed.

        Main Function is FindFile that take pattern of form '*' or '$directory\*' or more complex "$directory\*.txt"
        and return records from FileFileNextW as Class.

        Other function are utility functions as Copy, Move, GetCurrentDirectory, SetCurrentDirectory, ... etc.

EXPORT

FindFile

        FindFile( $GlobPattern ); 

        @file_matches = FindFile( "$Dir\*" ) or "warn not files match";
        @file_matches = FindFile( "*" ) ; # list current directory;
        @file_matches = FindFile( "A*") ; # list files beginning with A letter

GetCurrentDirectory

        $curpwd = CurrentDirectory();

SetCurrentDirectory

        SetCurrentDirectory( $next_curpwd ); # set current directory

GetFullPathName

        $absolute_path = GetFullPathName( $filename ) 

    Expand file name to absolute path
DeleteFile( $file )
CopyFile($from, $to, $fail_if_overwrite)
MoveFile($from, $to)
RemoveDirectory( $dir )
CreateDirectory( $dir )
GetBinaryType( $file )
GetCompressedFileSize($file)
GetFileAttributes($file)
GetFileAttributes( $file, $attr )
GetLongPathName( $file )
AreFileApisANSI
SetFileApisToOEM
SetFileApisToANSI

SEE ALSO

Win32, Win32API, Win32::UNICODE, Win32::LongPath

AUTHOR

A. G. Grishaev, <grian@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2014 by A. G. Grishaev

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 153:

=over should be: '=over' or '=over positive_number'