Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: How to stat a file with a Unicode (UTF16-LE) filename in Windows?

by ikegami (Pope)
on Feb 06, 2009 at 05:57 UTC ( #741805=note: print w/replies, xml ) Need Help??

in reply to How to stat a file with a Unicode (UTF16-LE) filename in Windows?

In chat, you said Win32API::File's CreateFileW + OsFHandleOpen didn't work. ("I have used Win32API::File, but it does not support converting the file handle for wide calls to Perl equivalents.") I downvoted for not showing what you tried because it does work.
use strict; use warnings; use Encode qw( encode ); use File::stat qw( stat ); use Symbol qw( gensym ); use Win32API::File qw( CreateFileW OsFHandleOpen GENERIC_READ FILE_SHARE_READ OPEN_EXISTING ); { # The file name consists of a black heart (U+2665). my $fn = encode('UCS-2le', "\x{2665}"); my $handle = CreateFileW( $fn, GENERIC_READ, FILE_SHARE_READ, [], OPEN_EXISTING, 0, [] ) or die("CreateFile: $^E\n"); my $fh = gensym(); OsFHandleOpen($fh, $handle, "r") or die("OsFHandleOpen: $!\n"); my $stat = stat($fh); print("atime: ", scalar(localtime($stat->atime())), "\n"); print("mtime: ", scalar(localtime($stat->mtime())), "\n"); print("ctime: ", scalar(localtime($stat->ctime())), "\n"); }
atime: Fri Feb 6 00:44:39 2009 mtime: Fri Feb 6 00:44:39 2009 ctime: Fri Feb 6 00:44:39 2009

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://741805]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2018-01-19 16:13 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (221 votes). Check out past polls.