Gerald Preston wrote:
Hi!

I know that this is an easy one, but I am not getting anywhere. I am using the following code to rename files, but I keep getting “permission denied”;


Right - it could be simpler ;-)

Assuming your AS Perl is in default location, the doc
you want is -
C:\Perl\html\lib\File\Copy.html

The function is 'move'.

HTH - Lynn.

#!/perl

  use strict;

  local( *FI, *FO );

.

.

.

.

sub rename_track_files {

  my( $file_path, $file, $DEBUG1, @files ) = @_;

  my $file_name = "$file_path\\$file";

  print "\n\nrename_track_files $file_name*\n\n" if $DEBUG1;

  my $j = 0;

  open( FI, $file_name ) || die "$file_name $!\n";

  while( <FI> ) {

    next if /EXTM3U|EXTINF/;

    $j++;

#print "act $file_path\\$_";

    my $mp = /mp3/   ? ".mp3" : ".mp4";

    my $jc = $j < 10 ? "0$j"  : "$j";

    my $old_name = "$file_path\\Track No$jc$mp";

    my $new_name = "$file_path\\$_";

    next if $old_name eq $new_name;

    next if( ! -e $old_name );

print "$old_name ** $_\n";

print "\n\nTrack No$jc$mp\n\n";

    chmod 0777, $old_name;

chdir $file_path;

    #my $p = `rename "$old_name" "$new_name"`;

next if ( rename( "Track No$jc$mp", $_ ) ) ; # implies successful rename

# next if ( rename($old_name, $new_name) ) ; # implies successful rename

    print "Error: " , $! , "\n";

    printf "OldFile: %s\nNewFile: %s\n",

                    $old_name,

                    $new_name;

  }

  close FI;

}1;

I have verified that the “read only” is not set on the files and directories. What am I missing?

Thanks,

Jerry


------------------------------------------------------------------------

_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to