Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: renaming filenames

by remiah (Hermit)
on Aug 16, 2012 at 13:09 UTC ( #987756=note: print w/ replies, xml ) Need Help??


in reply to Re: renaming filenames
in thread renaming filenames

Maybe trivial thing to say,

rename($in,$out) if !-e $out
doesn't it ?


Comment on Re^2: renaming filenames
Download Code
Replies are listed 'Best First'.
Re^3: renaming filenames
by andalou (Novice) on Aug 16, 2012 at 22:12 UTC

    I'm using perl 5.12.4 on windows 7.
    Your code doesn't work in windows.

      Some questions.

      1. Active Perl or Strawberry Perl ?

      2. What shows your $_ in your program ? With my XP, it shows 8.3 style file names(For example, "Program Files"=> Progra~1).

      foreach (@files) { print "$_\n"; my $original = $_; s/canción/poesía/; rename "$directory\\$original", "$directory\\$_"; }
      What would $_ with Windows 7?.

      3. When you install Win32::Unicode,Win32::Unicode::Dir, Does this work ?

      use strict; use warnings; use utf8; use Win32::Unicode; use Win32::Unicode::Dir; my $wdir = Win32::Unicode::Dir->new; $wdir->open('./'); while ( my $file=$wdir->fetch ) { next if( $file !~ /^canción/ ); my $file_new=$file; $file_new =~ s/canción/poesía/; printW "$file ==> $file_new\n"; #moveW($file, $file_new) or die $!; } $wdir->close;
      I tried with ActivePerl. As "andalou" says, I also met the same error when calling moveW. It seems lacking XS's function which is calling Win32API. I guess Strawberry Perl works ... fine?

      Update:
      I understand OP="andalou" now. If you are using Active Perl,

      ppm install "http://sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fassp%2 +FASSP+V2+multithreading%2Fpackages%2FWin32-Unicode.ppd"
      will remove your Win32::Unicode error messages. </code>

        Thanks remiah. How did you find the workaround for installing Win32::Unicode using ActivePerl?
        Is it better to uninstall ActivePerl and install Strawberry perl?

        Regards

      This shouldn't be a problem for you, use a linux live-cd...

      If I have a file called canción, without any extension, and I want to rename it to poesía, without extension, it doesn't do it...

      It only works if the filename has at least 8 characters including point and extension. Moreover, if the $to filename, has equal or more number of characters than the $from filename and this has at least 10 characters, strange characters appear on the $to filename.

      Windows related problems I bet... avoid yourself a lot of trouble and try linux for this specific task

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://987756]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (12)
As of 2015-07-08 05:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls