Rename a file: Difference between revisions

From Rosetta Code
Content added Content deleted
Line 32: Line 32:
}
}
}
}

==[[Perl]]==
[[Category:Perl]]
sub renameFile($$) {
my ($oldname, $newname) = @_;
return rename($oldname, $newname);
}
sub test($$$) {
my ($type, $oldname, $newname) = @_;
print "The following " . $type . " called " . $oldname, .
( renameFile($oldname, $newname) ? " was renamed as " : " could not be renamed into ")
. $newname . ".";
}
my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
test("file", "input.txt", "output.txt");
test("file", $FileSeperator . "input.txt", $FileSeperator . "output.txt");
test("directory", "docs", "mydocs");
test("directory", $FileSeperator + "docs" . $FileSeperator, $FileSeperator + "mydocs" + $FileSeperator);
}

# Short version
my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
rename("input.txt", "output.txt");
rename($FileSeperator . "input.txt", $FileSeperator . "output.txt");
rename("docs", "mydocs");
rename($FileSeperator + "docs" . $FileSeperator, $FileSeperator + "mydocs" + $FileSeperator);


==[[Bash]]==
==[[Bash]]==

Revision as of 15:47, 7 April 2007

Task
Rename a file
You are encouraged to solve this task according to the task description, using any language you may know.

In this task, the job is to rename the file called "input.txt" into "output.txt" and a directory called "docs" into "mydocs". Assuming current directory or fullpath. Either "/input.txt" or "\input.txt" into "/output.txt" or "\output.txt" for the former and "/docs/" or "\docs\" into "/mydocs/" or "\mydocs\" for the second test.


Java

import java.util.File;
public class FileRenameTest {
   public static boolean renameFile(String oldname, String newname) {
       // File (or directory) with old name
       File file = new File(oldname);
   
       // File (or directory) with new name
       File file2 = new File(newname);
   
       // Rename file (or directory)
       boolean success = file.renameTo(file2);
       return sucess;
   }
   public static void test(String type, String oldname, String newname) {
       System.out.println("The following " + type + " called " + oldname +
           ( renameFile(oldname, newname) ? " was renamed as " : " could not be renamed into ")
           + newname + "."
       );
   }
   public static void main(String args[]) {
        test("file", "input.txt", "output.txt");
        test("file", File.seperator + "input.txt", File.seperator + "output.txt");
        test("directory", "docs", "mydocs");
        test("directory", File.seperator + "docs" + File.seperator, File.seperator + "mydocs" + File.seperator);
   }
}

Perl

   sub renameFile($$) {
       my ($oldname, $newname) = @_;
       return rename($oldname, $newname);
   }
   sub test($$$) {
       my ($type, $oldname, $newname) = @_;
       print "The following " . $type . " called " . $oldname, .
           ( renameFile($oldname, $newname) ? " was renamed as " : " could not be renamed into ")
           . $newname . ".";
   }
   my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
   test("file", "input.txt", "output.txt");
   test("file", $FileSeperator . "input.txt", $FileSeperator . "output.txt");
   test("directory", "docs", "mydocs");
   test("directory", $FileSeperator + "docs" . $FileSeperator, $FileSeperator + "mydocs" + $FileSeperator);
}
# Short version
my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
rename("input.txt", "output.txt");
rename($FileSeperator . "input.txt", $FileSeperator . "output.txt");
rename("docs", "mydocs");    
rename($FileSeperator + "docs" . $FileSeperator, $FileSeperator + "mydocs" + $FileSeperator);

Bash

 mv input.txt output.txt
 mv /input.txt /output.txt
 mv docs mydocs
 mv /docs /mydocs

DOS

 ren input.txt output.txt
 ren \input.txt \output.txt