Bret Goodfellow wrote:
Hi all,

Hello,

I am attempting to list out the contents of a directory, and print the
last time accessed. The data-time is not correct though. I am running
this code on a Windows XP workstation. There doesn't seem to be a real
easy way to get the timestamps of directories. Hmmmm.... Here is the
code:
# deldir4.pl
use strict;
# use warnings;
use File::Find;
my $DIRHANDLE;
my $file;
my $write_secs;
opendir $DIRHANDLE, "$ARGV[0]" or die "Can't open directory handle: $!";
while ($file = readdir $DIRHANDLE) {

perldoc -f readdir readdir DIRHANDLE Returns the next directory entry for a directory opened by "opendir". If used in list context, returns all the rest of the entries in the directory. If there are no more entries, returns an undefined value in scalar context or a null list in list context.

            If you're planning to filetest the return values out of a
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            "readdir", you'd better prepend the directory in question.
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            Otherwise, because we didn't "chdir" there, it would have been
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            testing the wrong file.
            ^^^^^^^^^^^^^^^^^^^^^^

                opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!";
                @dots = grep { /^\./ && -f "$some_dir/$_" } readdir(DIR);
                closedir DIR;

$write_secs = (stat($file))[9];
                   ^^^^^^^^^^

printf "file %s updated at %s\n", $file,
scalar localtime($write_secs);
} closedir $DIRHANDLE;


John
--
use Perl;
program
fulfillment

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to