I trying to find a solution for a problem that involves "long" filenames
under windows 2k/xp. This script:

<code>
use strict;
use Win32;

$|++;
testfiles(250,300);

sub testfiles {
    my($lower,$upper)[EMAIL PROTECTED];
    for my $i ($lower..$upper) {
        print "checking filename length of $i\n";
        my $filename="x" x $i;
        open(OUT,">$filename") || die "open for write - $!";
        binmode(OUT);
        print OUT "x" x $i;
        close(OUT);
        my $copy=$filename.qq{.1};
        unlink($copy);
        Win32::CopyFile($filename,$copy,1);
        if(! -e $copy) {
            print "Copy failed - $^E\n";
        } else {
            unlink($copy);
        }
        unlink($filename);
    }
}
</code>

will produce the following output, when run in c:\

...
checking filename length of 251
checking filename length of 252
checking filename length of 253
checking filename length of 254
Copy failed - The filename, directory name, or volume label syntax is
incorrect
checking filename length of 255
Copy failed - The system cannot find the path specified
checking filename length of 256
open for write - Invalid argument at \\santafe\c\tmp\perl\longfile\test.pl
line 13.


We obviously deal with a filename length limitation on perl-Windows. I
checked the man-pages and found mention of the -C command line flag and the
${^WIDE_SYSTEM_CALLS} variable in 'perldoc perlvar'. Both don't seem to make
any difference on my system and I was wondering if anybody happens to know
how I can convince perl on Win2K/WinXP to consume filenames with more than
256 characters. 

perl -v is v5.6.1 build 635. 

Do I have to upgrade to 5.8 and retry "-C"/WIDE_SYSTEM_CALLS?

Thanks in advance
  Tobias


_______________________________________________
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to