Rename a file: Difference between revisions
(→{{header|Python}}: Use OS-portable directory separator) |
m (Fixed lang tags.) |
||
Line 4: | Line 4: | ||
=={{header|Ada}}== |
=={{header|Ada}}== |
||
⚫ | |||
⚫ | |||
⚫ | |||
... |
... |
||
Rename ("input.txt", "output.txt"); |
Rename ("input.txt", "output.txt"); |
||
Rename ("docs", "mydocs"); |
Rename ("docs", "mydocs"); |
||
Rename ("/input.txt", "/output.txt"); |
Rename ("/input.txt", "/output.txt"); |
||
Rename ("/docs", "/mydocs"); |
Rename ("/docs", "/mydocs");</lang> |
||
⚫ | |||
The behavior depends on the concrete [[OS | operating system]] regarding: |
The behavior depends on the concrete [[OS | operating system]] regarding: |
||
* file name encoding issues; |
* file name encoding issues; |
||
Line 23: | Line 21: | ||
<!-- {{does not work with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release 1.8.8d.fc9.i386 - ''get directory'' and'' grep in string'' not available in any library ... yet}} --> |
<!-- {{does not work with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release 1.8.8d.fc9.i386 - ''get directory'' and'' grep in string'' not available in any library ... yet}} --> |
||
Note: <tt>reidf</tt> does not appear to be included in [[ALGOL 68G]]. Also note that file names would be Operating System dependent. |
Note: <tt>reidf</tt> does not appear to be included in [[ALGOL 68G]]. Also note that file names would be Operating System dependent. |
||
<lang |
<lang algol68>main:( |
||
main:( |
|||
PROC rename = (STRING source name, dest name)INT: |
PROC rename = (STRING source name, dest name)INT: |
||
BEGIN |
BEGIN |
||
Line 49: | Line 46: | ||
=={{header|AWK}}== |
=={{header|AWK}}== |
||
Awk allows to call operating system commands with the ''system()'' function. However, the awk script won't get its output, only the return code. But this task is simple enough for the trivial implementation to work: |
Awk allows to call operating system commands with the ''system()'' function. However, the awk script won't get its output, only the return code. But this task is simple enough for the trivial implementation to work: |
||
<lang awk>$ awk 'BEGIN{system("mv input.txt output.txt"}' |
|||
$ awk 'BEGIN{system("mv docs mydocs")}' |
|||
$ awk 'BEGIN{system("mv /input.txt /output.txt")}' |
|||
$ awk 'BEGIN{system("mv docs mydocs")}'</lang> |
|||
=={{header|AutoHotkey}}== |
=={{header|AutoHotkey}}== |
||
<lang AutoHotkey> |
<lang AutoHotkey>FileMove, oldname, newname</lang> |
||
FileMove, oldname, newname |
|||
⚫ | |||
=={{header|C}}== |
=={{header|C}}== |
||
<lang c>#include <stdio.h> |
<lang c>#include <stdio.h> |
||
Line 73: | Line 68: | ||
=={{header|C++}}== |
=={{header|C++}}== |
||
{{trans|C}} |
{{trans|C}} |
||
<lang cpp> |
<lang cpp>#include <cstdio> |
||
#include <cstdio> |
|||
int main() |
int main() |
||
Line 82: | Line 76: | ||
std::rename("/input.txt", "/output.txt"); |
std::rename("/input.txt", "/output.txt"); |
||
std::rename("/docs", "/mydocs"); |
std::rename("/docs", "/mydocs"); |
||
⚫ | |||
} |
|||
⚫ | |||
=={{header|C sharp|C#}}== |
=={{header|C sharp|C#}}== |
||
Line 109: | Line 102: | ||
=={{header|D}}== |
=={{header|D}}== |
||
⚫ | |||
<lang d> |
|||
⚫ | |||
std.file.rename("/input.txt","/output.txt"); |
std.file.rename("/input.txt","/output.txt"); |
||
std.file.rename("docs","mydocs"); |
std.file.rename("docs","mydocs"); |
||
std.file.rename("/docs","/mydocs"); |
std.file.rename("/docs","/mydocs");</lang> |
||
</lang> |
|||
=={{header|DOS Batch File}}== |
=={{header|DOS Batch File}}== |
||
Line 130: | Line 121: | ||
=={{header|Forth}}== |
=={{header|Forth}}== |
||
s" input.txt" s" output.txt" rename-file throw |
<lang forth> s" input.txt" s" output.txt" rename-file throw |
||
s" /input.txt" s" /output.txt" rename-file throw</lang> |
|||
=={{header|Groovy}}== |
=={{header|Groovy}}== |
||
Using File |
Using File |
||
<lang groovy>['input.txt':'output.txt', 'docs':'mydocs'].each { src, dst -> |
|||
<lang groovy> |
|||
['.', ''].each { dir -> |
|||
⚫ | |||
['.', ''].each { dir -> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
} |
|||
</lang> |
|||
Using Ant |
Using Ant |
||
<lang groovy>['input.txt':'output.txt', 'docs':'mydocs'].each { src, dst -> |
|||
<lang groovy> |
|||
['.', ''].each { dir -> |
|||
⚫ | |||
['.', ''].each { dir -> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
}</lang> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
<lang haskell> |
<lang haskell>import System.IO |
||
import System.Directory |
|||
main = do |
|||
renameFile "input.txt" "output.txt" |
|||
renameDirectory "docs" "mydocs" |
|||
renameFile "/input.txt" "/output.txt" |
|||
renameDirectory "/docs" "/mydocs"</lang> |
|||
=={{header|J}}== |
=={{header|J}}== |
||
Line 174: | Line 162: | ||
'kernel32 MoveFileA i *c *c' 15!:0 y;x |
'kernel32 MoveFileA i *c *c' 15!:0 y;x |
||
end. |
end. |
||
⚫ | |||
) |
|||
</lang> |
|||
Useage: |
Useage: |
||
<lang j> |
<lang j>'output.txt' frename 'input.txt' |
||
'/output.txt' frename '/input.txt' |
|||
'mydocs' frename 'docs' |
|||
'/mydocs' frename '/docs'</lang> |
|||
</lang> |
|||
=={{header|Java}}== |
=={{header|Java}}== |
||
<lang java> |
<lang 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); |
|||
} |
|||
}</lang> |
|||
=={{header|JavaScript}}== |
=={{header|JavaScript}}== |
||
Line 222: | Line 208: | ||
=={{header|Mathematica}}== |
=={{header|Mathematica}}== |
||
<lang Mathematica> |
<lang Mathematica>SetDirectory[NotebookDirectory[]] |
||
RenameFile["input.txt", "output.txt"] |
|||
RenameDirectory["docs", "mydocs"] |
|||
SetDirectory[$RootDirectory] |
|||
RenameFile["input.txt", "output.txt"] |
|||
RenameDirectory["docs", "mydocs"]</lang> |
|||
=={{header|MAXScript}}== |
=={{header|MAXScript}}== |
||
MAXScript has no folder rename method |
MAXScript has no folder rename method |
||
<lang maxscript>-- Here |
|||
renameFile "input.txt" "output.txt" |
|||
-- Root |
|||
renameFile "/input.txt" "/output.txt"</lang> |
|||
=={{header|Objective-C}}== |
=={{header|Objective-C}}== |
||
Line 247: | Line 233: | ||
=={{header|OCaml}}== |
=={{header|OCaml}}== |
||
<lang ocaml> |
<lang ocaml>Sys.rename "input.txt" "output.txt";; |
||
Sys.rename "docs" "mydocs";; |
|||
Sys.rename "/input.txt" "/output.txt";; |
|||
Sys.rename "/docs" "/mydocs";;</lang> |
|||
=={{header|Pascal}}== |
=={{header|Pascal}}== |
||
Line 277: | Line 263: | ||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
<lang perl> |
<lang perl>use File::Copy qw(move); |
||
use File::Spec::Functions qw(catfile rootdir); |
|||
# here |
|||
move 'input.txt', 'output.txt'; |
|||
move 'docs', 'mydocs'; |
|||
# root dir |
|||
move (catfile rootdir, 'input.txt'), (catfile rootdir, 'output.txt'); |
|||
move (catfile rootdir, 'docs'), (catfile rootdir, 'mydocs');</lang> |
|||
=={{header|PHP}}== |
=={{header|PHP}}== |
||
Line 296: | Line 282: | ||
=={{header|Pop11}}== |
=={{header|Pop11}}== |
||
<lang pop11>sys_file_move('inputs.txt', 'output.txt'); |
|||
sys_file_move('docs', 'mydocs'); |
|||
sys_file_move('/inputs.txt', '/output.txt'); |
|||
sys_file_move(/'docs', '/mydocs');</lang> |
|||
Note that notion of the root of filesystem is Unix specific, so above we |
Note that notion of the root of filesystem is Unix specific, so above we |
||
Line 305: | Line 291: | ||
=={{header|PowerShell}}== |
=={{header|PowerShell}}== |
||
<lang powershell> |
<lang powershell>Rename-Item input.txt output.txt |
||
# The Rename-item has the alias ren |
|||
ren input.txt output.txt</lang> |
|||
=={{header|Python}}== |
=={{header|Python}}== |
||
<lang python> |
<lang python>import os |
||
import os |
|||
⚫ | |||
os.rename("docs", "mydocs") |
|||
⚫ | |||
⚫ | |||
os.rename(os.sep + "docs", os.sep + "mydocs")</lang> |
|||
⚫ | |||
</lang> |
|||
=={{header|R}}== |
=={{header|R}}== |
||
Line 337: | Line 321: | ||
The <tt>FileUtils#move</tt> method has some more flexibility than the core <tt>File#rename</tt> method (not really demonstrated here). |
The <tt>FileUtils#move</tt> method has some more flexibility than the core <tt>File#rename</tt> method (not really demonstrated here). |
||
<lang ruby> |
<lang ruby>require 'fileutils' |
||
moves = { "input.txt" => "output.txt", "/input.txt" => "/output.txt", "docs" => "mydocs","/docs" => "/mydocs"} |
|||
moves.each{ |src, dest| FileUtils.move( src, dest, :verbose => true ) }</lang> |
|||
=={{header|Slate}}== |
=={{header|Slate}}== |
||
⚫ | |||
<lang slate> |
|||
⚫ | |||
(File newNamed: '/input.txt') renameTo: '/output.txt'. |
(File newNamed: '/input.txt') renameTo: '/output.txt'. |
||
(Directory newNamed: 'docs') renameTo: 'mydocs'. |
(Directory newNamed: 'docs') renameTo: 'mydocs'. |
||
(Directory newNamed: '/docs') renameTo: '/mydocs'. |
(Directory newNamed: '/docs') renameTo: '/mydocs'.</lang> |
||
</lang> |
|||
=={{header|Smalltalk}}== |
=={{header|Smalltalk}}== |
||
Line 358: | Line 340: | ||
=={{header|Standard ML}}== |
=={{header|Standard ML}}== |
||
<lang sml>OS.FileSys.rename {old = "input.txt", new = "output.txt"}; |
|||
OS.FileSys.rename {old = "docs", new = "mydocs"}; |
|||
OS.FileSys.rename {old = "/input.txt", new = "/output.txt"}; |
|||
OS.FileSys.rename {old = "/docs", new = "/mydocs"};</lang> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |
||
Line 378: | Line 360: | ||
=={{header|Toka}}== |
=={{header|Toka}}== |
||
<lang toka>needs shell |
|||
" input.txt" " output.txt" rename |
|||
" /input.txt" " /output.txt" rename |
|||
" docs" " mydocs" rename |
|||
" /docs" " /mydocs" rename</lang> |
|||
=={{header|UNIX Shell}}== |
=={{header|UNIX Shell}}== |
||
<lang bash>mv input.txt output.txt |
|||
mv /input.txt /output.txt |
|||
mv docs mydocs |
|||
mv /docs /mydocs</lang> |
|||
=={{header|Vedit macro language}}== |
=={{header|Vedit macro language}}== |
||
Vedit allows using either '\' or '/' as directory separator character, it is automatically converted to the one used by the operating system. |
Vedit allows using either '\' or '/' as directory separator character, it is automatically converted to the one used by the operating system. |
||
<lang vedit> |
<lang vedit>// In current directory |
||
// In current directory |
|||
File_Rename("input.txt", "output.txt") |
File_Rename("input.txt", "output.txt") |
||
File_Rename("docs", "mydocs") |
File_Rename("docs", "mydocs") |
||
Line 400: | Line 381: | ||
// In the root directory |
// In the root directory |
||
File_Rename("/input.txt", "/output.txt") |
File_Rename("/input.txt", "/output.txt") |
||
File_Rename("/docs", "/mydocs") |
File_Rename("/docs", "/mydocs")</lang> |
||
</lang> |
|||
=={{header|Visual Basic .NET}}== |
=={{header|Visual Basic .NET}}== |
||
Line 407: | Line 387: | ||
{{works with|Visual Basic .NET|9.0+}} |
{{works with|Visual Basic .NET|9.0+}} |
||
<lang vbnet> |
<lang vbnet>'Current Directory |
||
IO.Directory.Move("docs", "mydocs") |
|||
IO.File.Move("input.txt", "output.txt") |
|||
'Root |
|||
IO.Directory.Move("\docs", "\mydocs") |
|||
IO.File.Move("\input.txt", "\output.txt") |
|||
'Root, platform independent |
|||
IO.Directory.Move(IO.Path.DirectorySeparatorChar & "docs", _ |
|||
IO.Path.DirectorySeparatorChar & "mydocs") |
|||
IO.File.Move(IO.Path.DirectorySeparatorChar & "input.txt", _ |
|||
IO.Path.DirectorySeparatorChar & "output.txt")</lang> |
|||
{{omit from|TI-83 BASIC}} {{omit from|TI-89 BASIC}} <!-- Does not have a filesystem, just namespaced variables. --> |
{{omit from|TI-83 BASIC}} {{omit from|TI-89 BASIC}} <!-- Does not have a filesystem, just namespaced variables. --> |
Revision as of 13:04, 20 November 2009
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". This should be done twice: once "here", i.e. in the current working directory and once in the filesystem root.
Ada
<lang ada>with Ada.Directories; use Ada.Directories;
...
Rename ("input.txt", "output.txt"); Rename ("docs", "mydocs"); Rename ("/input.txt", "/output.txt"); Rename ("/docs", "/mydocs");</lang> The behavior depends on the concrete operating system regarding:
- file name encoding issues;
- file path notation (directory separator, directory syntax etc);
- file extension syntax;
- file system root (provided there is any).
ALGOL 68
Note: reidf does not appear to be included in ALGOL 68G. Also note that file names would be Operating System dependent. <lang algol68>main:(
PROC rename = (STRING source name, dest name)INT: BEGIN FILE actual file; INT errno = open(actual file, source name, stand back channel); IF errno NE 0 THEN errno ELSE IF reidf possible(actual file) THEN reidf(actual file, dest name); # change the identification of the book # errno ELSE close(actual file); -1 FI FI END; rename("input.txt", "output.txt"); rename("/input.txt", "/output.txt"); rename("docs", "mydocs"); rename("/docs", "/mydocs")
)</lang>
AWK
Awk allows to call operating system commands with the system() function. However, the awk script won't get its output, only the return code. But this task is simple enough for the trivial implementation to work: <lang awk>$ awk 'BEGIN{system("mv input.txt output.txt"}' $ awk 'BEGIN{system("mv docs mydocs")}' $ awk 'BEGIN{system("mv /input.txt /output.txt")}' $ awk 'BEGIN{system("mv docs mydocs")}'</lang>
AutoHotkey
<lang AutoHotkey>FileMove, oldname, newname</lang>
C
<lang c>#include <stdio.h>
int main() {
rename("input.txt", "output.txt"); rename("docs", "mydocs"); rename("/input.txt", "/output.txt"); rename("/docs", "/mydocs"); return 0;
}</lang>
C++
<lang cpp>#include <cstdio>
int main() {
std::rename("input.txt", "output.txt"); std::rename("docs", "mydocs"); std::rename("/input.txt", "/output.txt"); std::rename("/docs", "/mydocs");
}</lang>
C#
<lang csharp>using System; using System.IO;
class Program {
static void Main(string[] args) { File.Move("input.txt","output.txt"); File.Move(@"\input.txt",@"\output.txt");
Directory.Move("docs","mydocs"); Directory.Move(@"\docs",@"\mydocs"); }
}</lang>
Common Lisp
<lang lisp>(rename-file "input.txt" "output.txt") (rename-file "docs" "mydocs") (rename-file "/input.txt" "/output.txt") (rename-file "/docs" "/mydocs")</lang>
D
<lang d>std.file.rename("input.txt","output.txt"); std.file.rename("/input.txt","/output.txt"); std.file.rename("docs","mydocs"); std.file.rename("/docs","/mydocs");</lang>
DOS Batch File
<lang dos>ren input.txt output.txt ren \input.txt output.txt ren docs mydocs ren \docs mydocs</lang>
E
<lang e>for where in [<file:.>, <file:///>] {
where["input.txt"].renameTo(where["output.txt"], null) where["docs"].renameTo(where["mydocs"], null)
}</lang>
Forth
<lang forth> s" input.txt" s" output.txt" rename-file throw s" /input.txt" s" /output.txt" rename-file throw</lang>
Groovy
Using File <lang groovy>['input.txt':'output.txt', 'docs':'mydocs'].each { src, dst ->
['.', ].each { dir -> new File("$dir/$src").renameTo(new File("$dir/$dst")) }
}</lang>
Using Ant <lang groovy>['input.txt':'output.txt', 'docs':'mydocs'].each { src, dst ->
['.', ].each { dir -> new AntBuilder().move(file:"$dir/$src", toFile:"$dir/$dst") }
}</lang>
Haskell
<lang haskell>import System.IO import System.Directory
main = do
renameFile "input.txt" "output.txt" renameDirectory "docs" "mydocs" renameFile "/input.txt" "/output.txt" renameDirectory "/docs" "/mydocs"</lang>
J
J does not ship with a built-in utility for renaming files. The following will work on Windows, Linux and Macs:
<lang j>frename=: 4 : 0
if. x -: y do. return. end. if. IFUNIX do. hostcmd=. [: 2!:0 '('"_ , ] , ' || true)'"_ hostcmd 'mv "',y,'" "',x,'"' else. 'kernel32 MoveFileA i *c *c' 15!:0 y;x end.
)</lang>
Useage: <lang j>'output.txt' frename 'input.txt' '/output.txt' frename '/input.txt' 'mydocs' frename 'docs' '/mydocs' frename '/docs'</lang>
Java
<lang 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); }
}</lang>
JavaScript
Throws an error if the destination file/folder exists. <lang javascript>var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.MoveFile('input.txt', 'output.txt'); fso.MoveFile('c:/input.txt', 'c:/output.txt'); fso.MoveFolder('docs', 'mydocs'); fso.MoveFolder('c:/docs', 'c:/mydocs');</lang>
Mathematica
<lang Mathematica>SetDirectory[NotebookDirectory[]] RenameFile["input.txt", "output.txt"] RenameDirectory["docs", "mydocs"] SetDirectory[$RootDirectory] RenameFile["input.txt", "output.txt"] RenameDirectory["docs", "mydocs"]</lang>
MAXScript
MAXScript has no folder rename method <lang maxscript>-- Here renameFile "input.txt" "output.txt" -- Root renameFile "/input.txt" "/output.txt"</lang>
Objective-C
<lang objc>NSFileManager *fm = [NSFileManager defaultManager];
[fm movePath:@"input.txt" toPath:@"output.txt" handler:nil]; [fm movePath:@"docs" toPath:@"mydocs" handler:nil];</lang>
OCaml
<lang ocaml>Sys.rename "input.txt" "output.txt";; Sys.rename "docs" "mydocs";; Sys.rename "/input.txt" "/output.txt";; Sys.rename "/docs" "/mydocs";;</lang>
Pascal
<lang pascal> var
f : file ; // Untyped file begin // as current directory AssignFile(f,'input.doc'); Rename(f,'output,doc'); // as root directory AssignFile(f,'\input.doc'); Rename(f,'\output,doc'); // rename a directory AssignFile(f,'docs'); Rename(f,'mydocs'); //rename a directory off the root AssignFile(f,'\docs'); Rename(f,'\mydocs');
end;</lang>
Perl
<lang perl>use File::Copy qw(move); use File::Spec::Functions qw(catfile rootdir);
- here
move 'input.txt', 'output.txt'; move 'docs', 'mydocs';
- root dir
move (catfile rootdir, 'input.txt'), (catfile rootdir, 'output.txt'); move (catfile rootdir, 'docs'), (catfile rootdir, 'mydocs');</lang>
PHP
<lang php><?php rename('input.txt', 'output.txt'); rename('docs', 'mydocs'); rename('/input.txt', '/output.txt'); rename('/docs', '/mydocs'); ?></lang>
Pop11
<lang pop11>sys_file_move('inputs.txt', 'output.txt'); sys_file_move('docs', 'mydocs'); sys_file_move('/inputs.txt', '/output.txt'); sys_file_move(/'docs', '/mydocs');</lang>
Note that notion of the root of filesystem is Unix specific, so above we do not try to suport other systems.
PowerShell
<lang powershell>Rename-Item input.txt output.txt
- The Rename-item has the alias ren
ren input.txt output.txt</lang>
Python
<lang python>import os
os.rename("input.txt", "output.txt") os.rename("docs", "mydocs")
os.rename(os.sep + "input.txt", os.sep + "output.txt") os.rename(os.sep + "docs", os.sep + "mydocs")</lang>
R
<lang R>file.rename("input.txt", "output.txt") file.rename("/input.txt", "/output.txt") file.rename("docs", "mydocs") file.rename("/docs", "/mydocs")</lang>
Ruby
<lang ruby>File.rename('input.txt', 'output.txt') File.rename('/input.txt', '/output.txt') File.rename('docs', 'mydocs') File.rename('/docs', '/mydocs')</lang>
The FileUtils#move method has some more flexibility than the core File#rename method (not really demonstrated here).
<lang ruby>require 'fileutils' moves = { "input.txt" => "output.txt", "/input.txt" => "/output.txt", "docs" => "mydocs","/docs" => "/mydocs"} moves.each{ |src, dest| FileUtils.move( src, dest, :verbose => true ) }</lang>
Slate
<lang slate>(File newNamed: 'input.txt') renameTo: 'output.txt'. (File newNamed: '/input.txt') renameTo: '/output.txt'. (Directory newNamed: 'docs') renameTo: 'mydocs'. (Directory newNamed: '/docs') renameTo: '/mydocs'.</lang>
Smalltalk
<lang smalltalk>File rename: 'input.txt' to: 'output.txt'. File rename: 'docs' to: 'mydocs'. "as for other example, this works on systems
where the root is / ..."
File rename: '/input.txt' to: '/output.txt'. File rename: '/docs' to: '/mydocs'</lang>
Standard ML
<lang sml>OS.FileSys.rename {old = "input.txt", new = "output.txt"}; OS.FileSys.rename {old = "docs", new = "mydocs"}; OS.FileSys.rename {old = "/input.txt", new = "/output.txt"}; OS.FileSys.rename {old = "/docs", new = "/mydocs"};</lang>
Tcl
Assuming that the Bash example shows what is actually meant with this task (one file and one directory here, one file and one directory in the root) and further assuming that this is supposed to be generic (i.e. OS agnostic): <lang tcl>file rename inputs.txt output.txt file rename docs mydocs
file rename [file nativename /inputs.txt] [file nativename /output.txt] file rename [file nativename /docs] [file nativename /mydocs]</lang> Without the need to work on unusual platforms like Mac OS 9, the code could be just: <lang tcl>file rename inputs.txt output.txt file rename docs mydocs
file rename /inputs.txt /output.txt file rename /docs /mydocs</lang>
Toka
<lang toka>needs shell " input.txt" " output.txt" rename " /input.txt" " /output.txt" rename
" docs" " mydocs" rename " /docs" " /mydocs" rename</lang>
UNIX Shell
<lang bash>mv input.txt output.txt mv /input.txt /output.txt mv docs mydocs mv /docs /mydocs</lang>
Vedit macro language
Vedit allows using either '\' or '/' as directory separator character, it is automatically converted to the one used by the operating system. <lang vedit>// In current directory File_Rename("input.txt", "output.txt") File_Rename("docs", "mydocs")
// In the root directory File_Rename("/input.txt", "/output.txt") File_Rename("/docs", "/mydocs")</lang>
Visual Basic .NET
Platform: .NET
<lang vbnet>'Current Directory IO.Directory.Move("docs", "mydocs") IO.File.Move("input.txt", "output.txt")
'Root IO.Directory.Move("\docs", "\mydocs") IO.File.Move("\input.txt", "\output.txt")
'Root, platform independent IO.Directory.Move(IO.Path.DirectorySeparatorChar & "docs", _
IO.Path.DirectorySeparatorChar & "mydocs")
IO.File.Move(IO.Path.DirectorySeparatorChar & "input.txt", _
IO.Path.DirectorySeparatorChar & "output.txt")</lang>
- Programming Tasks
- File System Operations
- Ada
- ALGOL 68
- AWK
- AutoHotkey
- C
- C++
- C sharp
- Common Lisp
- D
- DOS Batch File
- E
- Forth
- Groovy
- Haskell
- J
- Java
- JavaScript
- Mathematica
- MAXScript
- Objective-C
- OCaml
- Pascal
- Perl
- PHP
- Pop11
- PowerShell
- Python
- R
- Ruby
- Fileutils.rb
- Slate
- Smalltalk
- Standard ML
- Tcl
- Toka
- UNIX Shell
- Vedit macro language
- Visual Basic .NET
- TI-83 BASIC/Omit
- TI-89 BASIC/Omit