use strict;
use warnings;
my $path = $ARGV[0];
exit unless $path;
if ( -w $path ) {
print "'$path' is writeable\n";
eval {
open my $fh, '>', "$path/foo.txt" or die $!;
print $fh "foo\n";
close $fh;
};
if ( $@ ) {
print "\twrite failed: '$@'\n";
}
else {
print "\twrite succeeded\n";
unlink "$path/foo.txt" or die $!;
}
}
else {
print "'$path' is not writeable\n";
eval {
open my $fh, '>', "$path/foo.txt" or die $!;
print $fh "foo\n";
close $fh;
};
if ( $@ ) {
print "\twrite failed: '$@'\n";
}
else {
print "\twrite succeeded\n";
unlink "$path/foo.txt" or die $!;
}
}
####
perl is_path_writeable.pl folder\ with\ spaces
'folder with spaces/' is writeable
write failed: 'Operation not permitted at is_path_writeable.pl line 11.
'
####
perl is_path_writeable.pl "C:\Documents and Settings\bke\My Documents"
'C:\Documents and Settings\bke\My Documents' is not writeable
write succeeded