NAME

Win32::FindFile - simple unicode directory reader under Win32

SYNOPSIS

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

  # 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, "\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

@content = FindFile( $Pattern ) Find files matching pattern and returns them as list each record is blessed in FileFind::FindData class.
utf8 = GetCurrentDirectory()
return CurrentDirectory as getcwd? but return value in utf8
SetCurrentDirectory( folder ) or die "Can't chdir to folder";
Set current directory
GetFullPathName(file) Expand file name to absolute path
$bool = AreFileApisANSI() =item SetFileApisToOEM() =item SetFileApisToANSI() If you know that is it you may do it =item DeleteFile( $file ) Delete file. On success return true. Error description are at $^E =item CopyFile($from, $to, $fail_if_overwrite) =item MoveFile($from, $to) =item RemoveDirectory( $dir ) =item CreateDirectory( $dir )
copy, move, rmdir, mkdir. On success return 1. Errors at $^E
GetBinaryType($file) See MSDN =item GetCompressedFileSize($file) =item GetFileAttributes($file) =item GetFileAttributes)$file, $attr) =item GetLongPathName(file)

SEE ALSO

Win32, Win32API, Win32::UNICODE

AUTHOR

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

COPYRIGHT AND LICENSE

Copyright (C) 2010 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.