g_speran has asked for the wisdom of the Perl Monks concerning the following question:
Hello All,
I am trying to write a script that would parse thru a windows directory supplied and return the object type encountered (File, Directory, Link, etc), size, atime, ctime, and mtime.
I located some code on the internet that kinda works, but when it gets to a windows link/shortcut (.lnk), the script fails with:
Use of uninitialized value in bitwise and (&) at C:\temp\showmodes.pl line 5.
Can't stat() 'C:\Users\admin\Favorites\MSN Websites\MSN Autos'
Any thoughts on how to parse thru all object type and it return the appropriate information?
#!/usr/bin/perl use strict; use warnings; my $name = shift or die "Usage: $0 file|directory\n"; my $mode = ( ( lstat($name) )[2] ) & 07777 or die "Can't stat() '$name +'\n"; printf "%s %04o %s\n", ( -f _ ) ? 'f' : ( -l _ ) ? 'l' : ( -d _ ) ? 'd' : ( -b _ ) ? 'b' : ( -c _ ) ? 'c' : ( -p _ ) ? 'p' : ( -S _ ) ? 's' : '?', $mode, $name; 1;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: parsing the Windows directories
by frozenwithjoy (Priest) on Aug 19, 2014 at 20:28 UTC | |
|
Re: parsing the Windows directories
by wilmer_t (Novice) on Aug 19, 2014 at 22:16 UTC | |
by RonW (Parson) on Aug 20, 2014 at 16:35 UTC | |
|
Re: parsing the Windows directories
by dasgar (Priest) on Aug 20, 2014 at 17:03 UTC |