in reply to Windows folder access error

What operating system is this running on?

When I run your code with an invalid directory the message tells me "No such file or directory...". One way to get the message you show is if you don't have permission to open that directory. http://www.tek-tips.com/viewthread.cfm?qid=346695

use warnings; use strict; my $directory = "\\usr\\pm\\filefind1"; print "Folder: ", $directory; print -d $directory ? " found" : " not found", ".\n"; opendir (DIR, $directory) or die $!; while (my $fldr = readdir(DIR)) { print "$fldr\n"; } __END__ output: Folder: \usr\pm\filefind1 not found. No such file or directory at C:\usr\pm\filefind\1104870.pl line 8.

Updated to use $^E.

use warnings; use strict; my $directory = "\\usr\\pm\\filefind1"; print "Folder: ", $directory; print -d $directory ? " found" : " not found", ".\n"; ###### added $^E opendir (DIR, $directory) or die "$!\n***********\n$^E\n"; while (my $fldr = readdir(DIR)) { print "$fldr\n"; } __END__ output: Folder: \usr\pm\filefind1 not found. No such file or directory *********** The system cannot find the path specified

Replies are listed 'Best First'.
Re^2: Windows folder access error
by ArifS (Beadle) on Oct 24, 2014 at 20:05 UTC
    Yes, I have permission to that folder. I can access using command prompt - cd \Folders\1Folder\1aFolder.

    As I mentioned above... it recognizes "." as the root but doesn't like when I look for a specific folder like- "\\Folders\\1Folder\\1aFolder". My understanding is it has to do with windows vs Linux pattern-

    Linux: /folders/.... etc
    Windows: \\Folders... etc.

      So you continue to ignore my advise and are left to run through whatever guesses people come up with as to the root cause?

      If Lotus1 had followed my advice, his test case would have also said 'Access is denied' (which identifies the problem rather clearly). Why don't you want to know the useful error message for your case?

      - tye        

        I did read your node and tried adding a $^E in the die statement and it only gave a redundant comment about an invalid directory. If you had read my code you would notice I only tested for an invalid directory. I don't have an admin login on my work machine and couldn't test for insufficient file privileges.

        I was pointing out that the error message the OP presented was obviously not from an invalid directory.

        My only guess is that your script is running in a context where it doesn't have a current "working drive" and if you prepend the "C:" to your string, that it might fix the problem.

        From that statement you didn't seem to be considering permissions as a possibility so I brought it up.

        I apologize. I didn't mean to ignore you. I am not sure how to do the error test....