Rename a file: Difference between revisions

m
syntax highlighting fixup automation
m (syntax highlighting fixup automation)
Line 19:
{{trans|Python}}
 
<langsyntaxhighlight lang="11l">fs:rename(‘input.txt’, ‘output.txt’)
fs:rename(‘docs’, ‘mydocs’)
 
fs:rename(fs:path:sep‘input.txt’, fs:path:sep‘output.txt’)
fs:rename(fs:path:sep‘docs’, fs:path:sep‘mydocs’)</langsyntaxhighlight>
 
=={{header|Action!}}==
The attached result has been obtained under DOS 2.5.
{{libheader|Action! Tool Kit}}
<langsyntaxhighlight Actionlang="action!">INCLUDE "D2:IO.ACT" ;from the Action! Tool Kit
 
PROC Dir(CHAR ARRAY filter)
Line 60:
PrintF("Dir ""%S""%E",filter)
Dir(filter)
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Rename_a_file.png Screenshot from Atari 8-bit computer]
Line 80:
 
=={{header|Ada}}==
<langsyntaxhighlight lang="ada">with Ada.Directories; use Ada.Directories;
...
Rename ("input.txt", "output.txt");
Rename ("docs", "mydocs");
Rename ("/input.txt", "/output.txt");
Rename ("/docs", "/mydocs");</langsyntaxhighlight>
The behavior depends on the concrete [[OS | operating system]] regarding:
* file name encoding issues;
Line 98:
<!-- {{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.
<langsyntaxhighlight lang="algol68">main:(
PROC rename = (STRING source name, dest name)INT:
BEGIN
Line 119:
rename("docs", "mydocs");
rename("/docs", "/mydocs")
)</langsyntaxhighlight>
 
=={{header|Arturo}}==
<langsyntaxhighlight lang="rebol">fileFrom: "input.txt"
fileTo: "output.txt"
docsFrom: "docs"
Line 134:
 
rename.directory join.path ["/" docsFrom]
join.path ["/" docsTo]</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
<syntaxhighlight lang AutoHotkey="autohotkey">FileMove, oldname, newname</langsyntaxhighlight>
 
=={{header|AutoIt}}==
Line 147:
=={{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:
<langsyntaxhighlight 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")}'</langsyntaxhighlight>
 
=={{header|BaCon}}==
<langsyntaxhighlight lang="freebasic">RENAME "input.txt" TO "output.txt"
RENAME "/input.txt" TO "/output.txt"
RENAME "docs" TO "mydocs"
RENAME "/docs" TO "/mydocs"
</syntaxhighlight>
</lang>
 
=={{header|BASIC}}==
<langsyntaxhighlight lang="qbasic">NAME "input.txt" AS "output.txt"
NAME "\input.txt" AS "\output.txt"
NAME "docs" AS "mydocs"
NAME "\docs" AS "\mydocs"</langsyntaxhighlight>
 
==={{header|Applesoft BASIC}}===
Apple DOS 3.3 has a flat filesystem with no concept of directories. DOS commands such as RENAME are run directly from the Applesoft prompt but are not technically part of Applesoft BASIC. Thus, attempting to add this line to a program and run it results in a syntax error on that line.
 
<syntaxhighlight lang ="basic">RENAME INPUT.TXT,OUTPUT.TXT</langsyntaxhighlight>
 
To use a DOS command from a program, use the BASIC statement PRINT followed by CHR$(4) and the string containing the DOS command.
 
<langsyntaxhighlight lang="basic">10 PRINT CHR$ (4)"RENAME INPUT.TXT,OUTPUT.TXT"</langsyntaxhighlight>
 
Apple ProDOS does have directories. To change the current working directory to the "root" directory, issue a PREFIX / command.
 
<langsyntaxhighlight lang="basic">10 PRINT CHR$ (4)"RENAME INPUT.TXT,OUTPUT.TXT"
20 PRINT CHR$ (4)"RENAME DOCS,MYDOCS"
30 PRINT CHR$ (4)"PREFIX /"
40 PRINT CHR$ (4)"RENAME INPUT.TXT,OUTPUT.TXT"
50 PRINT CHR$ (4)"RENAME DOCS,MYDOCS"</langsyntaxhighlight>
 
==={{header|Commodore BASIC}}===
'''Works with''' Commodore BASIC V2.0 as follows:
 
<langsyntaxhighlight lang="basic">OPEN 15,<Device>,15,"R<DRIVE>:FilenameOLD=FilenameNEW":CLOSE 15</langsyntaxhighlight>
 
'''Works with''' Commodore BASIC 3.5 and above as follows:
<langsyntaxhighlight lang="basic">RENAME <FilenameOLD>[,D<DRIVE>] TO <FilenameNEW> [ON U<Deviceadress>]</langsyntaxhighlight>
 
==={{header|ZX Spectrum Basic}}===
Line 194:
 
=={{header|Batch File}}==
<langsyntaxhighlight lang="dos">ren input.txt output.txt
ren \input.txt output.txt
ren docs mydocs
ren \docs mydocs</langsyntaxhighlight>
 
=={{header|BBC BASIC}}==
{{works with|BBC BASIC for Windows}}
When the file or directory names are known as constants at 'compile time':
<langsyntaxhighlight lang="bbcbasic"> *RENAME input.txt output.txt
*RENAME \input.txt \output.txt
*RENAME docs. mydocs.
*RENAME \docs. \mydocs.</langsyntaxhighlight>
When the file or directory names are known only at run time:
<langsyntaxhighlight lang="bbcbasic"> OSCLI "RENAME input.txt output.txt"
OSCLI "RENAME \input.txt \output.txt"
OSCLI "RENAME docs. mydocs."
OSCLI "RENAME \docs. \mydocs."</langsyntaxhighlight>
 
=={{header|Bracmat}}==
<langsyntaxhighlight lang="bracmat">ren$("input.txt"."output.txt") { 'ren' is based on standard C function 'rename()' }
ren$(docs.mydocs) { No quotes needed: names don't contain dots or colons. }
ren$("d:\\input.txt"."d:\\output.txt") { Backslash is escape character, so we need to escape it. }
ren$(@"d:\docs".@"d:\mydocs") { @ used as syntactic sugar as in C# for inhibiting escape. }
</syntaxhighlight>
</lang>
 
=={{header|C}}==
<langsyntaxhighlight lang="c">#include <stdio.h>
 
int main()
Line 229:
rename("/docs", "/mydocs");
return 0;
}</langsyntaxhighlight>
 
=={{header|C sharp}}==
 
<langsyntaxhighlight lang="csharp">using System;
using System.IO;
 
Line 244:
Directory.Move(@"\docs",@"\mydocs");
}
}</langsyntaxhighlight>
 
=={{header|C++}}==
{{trans|C}}
<langsyntaxhighlight lang="cpp">#include <cstdio>
 
int main()
Line 257:
std::rename("/docs", "/mydocs");
return 0;
}</langsyntaxhighlight>
 
{{libheader|Boost}}
Line 263:
compiled with g++ -lboost_system -lboost_filesystem
 
<langsyntaxhighlight lang="cpp">#include "boost/filesystem.hpp"
 
int main()
Line 280:
boost::filesystem::path("/mydocs"));*/
return 0;
}</langsyntaxhighlight>
 
=={{header|Clipper}}==
 
<langsyntaxhighlight Clipperlang="clipper">FRename( "input.txt","output.txt")
or
RENAME input.txt TO output.txt
Line 290:
FRename("\input.txt","\output.txt")
or
RENAME \input.txt TO \output.txt</langsyntaxhighlight>
 
Clipper has no it's own functions to rename a directory, it is possible, though, to write appropriate code in '''C''' and link it to Clipper application, using the Clipper's Extend system.
 
=={{header|Clojure}}==
<langsyntaxhighlight lang="clojure">(import '(java.io File))
 
(.renameTo (File. "input.txt") (File. "output.txt"))
Line 305:
(.renameTo
(File. (str (File/separator) "docs"))
(File. (str (File/separator) "mydocs")))</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
<code>[http://www.lispworks.com/documentation/HyperSpec/Body/f_rn_fil.htm rename-file]</code>
 
<langsyntaxhighlight lang="lisp">(rename-file "input.txt" "output.txt")
(rename-file "docs" "mydocs")
(rename-file "/input.txt" "/output.txt")
(rename-file "/docs" "/mydocs")</langsyntaxhighlight>
 
=={{header|D}}==
<langsyntaxhighlight 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");</langsyntaxhighlight>
 
=={{header|DBL}}==
<langsyntaxhighlight DBLlang="dbl">XCALL RENAM ("output.txt","input.txt")
.IFDEF UNIX
XCALL SPAWN ("mv docs mydocs")
Line 331:
.IFDEF VMS
XCALL SPAWN ("rename docs.dir mydocs.dir")
.ENDC</langsyntaxhighlight>
 
=={{header|DCL}}==
<langsyntaxhighlight DCLlang="dcl">rename input.txt output.txt
rename docs.dir mydocs.dir
rename [000000]input.txt [000000]output.txt
rename [000000]docs.dir [000000]mydocs.dir</langsyntaxhighlight>
 
=={{header|Delphi}}==
<langsyntaxhighlight Delphilang="delphi">program RenameFile;
 
{$APPTYPE CONSOLE}
Line 353:
SysUtils.RenameFile('docs', 'MyDocs');
SysUtils.RenameFile('\docs', '\MyDocs');
end.</langsyntaxhighlight>
 
=={{header|E}}==
 
<langsyntaxhighlight lang="e">for where in [<file:.>, <file:///>] {
where["input.txt"].renameTo(where["output.txt"], null)
where["docs"].renameTo(where["mydocs"], null)
}</langsyntaxhighlight>
 
=={{header|Elixir}}==
<langsyntaxhighlight lang="elixir">File.rename "input.txt","output.txt"
File.rename "docs", "mydocs"
File.rename "/input.txt", "/output.txt"
File.rename "/docs", "/mydocs"</langsyntaxhighlight>
 
=={{header|Emacs Lisp}}==
<langsyntaxhighlight lang="lisp">(rename-file "input.txt" "output.txt")
(rename-file "/input.txt" "/output.txt")
(rename-file "docs" "mydocs")
(rename-file "/docs" "/mydocs")</langsyntaxhighlight>
 
This can also be done interactively with <code>M-x rename-file</code>. Programmatically the default is to throw an error if the new name already exists but the "ok-if-already-exists" parameter can either forcibly overwrite or query the user. Query is the default interactively.
Line 378:
=={{header|Erlang}}==
 
<langsyntaxhighlight lang="erlang">
file:rename("input.txt","output.txt"),
file:rename( "docs", "mydocs" ),
file:rename( "/input.txt", "/output.txt" ),
file:rename( "/docs", "/mydocs" ).
</syntaxhighlight>
</lang>
 
=={{header|ERRE}}==
Line 403:
=={{header|F_Sharp|F#}}==
{{trans|C#}}
<langsyntaxhighlight lang="fsharp">open System.IO
[<EntryPoint>]
Line 411:
Directory.Move("docs","mydocs")
Directory.Move(@"\docs",@"\mydocs")
0</langsyntaxhighlight>
 
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">"" "/" [
[ "input.txt" "output.txt" move-file "docs" "mydocs" move-file ] with-directory
] bi@</langsyntaxhighlight>
 
=={{header|Fantom}}==
<langsyntaxhighlight lang="fantom">
class Rename
{
Line 432:
}
}
</syntaxhighlight>
</lang>
 
=={{header|Forth}}==
<langsyntaxhighlight lang="forth"> s" input.txt" s" output.txt" rename-file throw
s" /input.txt" s" /output.txt" rename-file throw</langsyntaxhighlight>
 
=={{header|Fortran}}==
Using UNIX extensions to '''Fortran 77''' (see e.g. [http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Rename-Intrinsic-_0028subroutine_0029.html#Rename-Intrinsic-_0028subroutine_0029 g77 manual]) :
<langsyntaxhighlight lang="fortran"> PROGRAM EX_RENAME
CALL RENAME('input.txt','output.txt')
CALL RENAME('docs','mydocs')
CALL RENAME('/input.txt','/output.txt')
CALL RENAME('/docs','/mydocs')
END</langsyntaxhighlight>
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">' FB 1.05.0 Win64
 
Dim result As Long
Line 461:
End If
 
Sleep</langsyntaxhighlight>
 
=={{header|Go}}==
<langsyntaxhighlight lang="go">package main
import "os"
 
Line 472:
os.Rename("/input.txt", "/output.txt")
os.Rename("/docs", "/mydocs")
}</langsyntaxhighlight>
 
=={{header|Groovy}}==
Using File
<langsyntaxhighlight lang="groovy">['input.txt':'output.txt', 'docs':'mydocs'].each { src, dst ->
['.', ''].each { dir ->
new File("$dir/$src").renameTo(new File("$dir/$dst"))
}
}</langsyntaxhighlight>
 
Using Ant
<langsyntaxhighlight lang="groovy">['input.txt':'output.txt', 'docs':'mydocs'].each { src, dst ->
['.', ''].each { dir ->
new AntBuilder().move(file:"$dir/$src", toFile:"$dir/$dst")
}
}</langsyntaxhighlight>
 
=={{header|Harbour}}==
 
<langsyntaxhighlight lang="visualfoxpro">FRename( "input.txt","output.txt")
// or
RENAME input.txt TO output.txt
 
FRename( hb_ps() + "input.txt", hb_ps() + "output.txt")</langsyntaxhighlight>
 
Harbour has no it's own functions to rename a directory, it is possible, though, to write appropriate code in '''C''' and link it to Harbour application, using the Harbour's Extend system.
 
=={{header|Haskell}}==
<langsyntaxhighlight lang="haskell">import System.IO
import System.Directory
 
Line 507:
renameDirectory "docs" "mydocs"
renameFile "/input.txt" "/output.txt"
renameDirectory "/docs" "/mydocs"</langsyntaxhighlight>
 
=={{header|HicEst}}==
<langsyntaxhighlight lang="hicest">WRITE(FIle='input.txt', REName='.\output.txt')
SYSTEM(DIR='E:\HicEst\Rosetta')
WRITE(FIle='.\docs', REName='.\mydocs')
Line 516:
WRITE(FIle='\input.txt', REName='\output.txt')
SYSTEM(DIR='\')
WRITE(FIle='\docs', REName='\mydocs') </langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
Icon supports 'rename' for files only.
<langsyntaxhighlight Uniconlang="unicon">every dir := !["./","/"] do {
rename(f := dir || "input.txt", dir || "output.txt") |stop("failure for file rename ",f)
rename(f := dir || "docs", dir || "mydocs") |stop("failure for directory rename ",f)
}</langsyntaxhighlight>
Note: Icon and Unicon accept both / and \ for directory separators.
 
=={{header|Io}}==
 
<syntaxhighlight lang="io">
<lang Io>
// rename file in current directory
f := File with("input.txt")
Line 544:
d := Directory with("/docs")
d moveTo("/mydocs")
</syntaxhighlight>
</lang>
 
=={{header|J}}==
Line 551:
The following will work on Windows, Linux and Macs:
 
<langsyntaxhighlight lang="j">frename=: 4 : 0
if. x -: y do. return. end.
if. IFUNIX do.
Line 559:
'kernel32 MoveFileA i *c *c' 15!:0 y;x
end.
)</langsyntaxhighlight>
 
Useage:
<langsyntaxhighlight lang="j">'output.txt' frename 'input.txt'
'/output.txt' frename '/input.txt'
'mydocs' frename 'docs'
'/mydocs' frename '/docs'</langsyntaxhighlight>
 
=={{header|Java}}==
<langsyntaxhighlight lang="java">import java.io.File;
public class FileRenameTest {
public static boolean renameFile(String oldname, String newname) {
Line 593:
test("directory", File.separator + "docs" + File.separator, File.separator + "mydocs" + File.separator);
}
}</langsyntaxhighlight>
 
=={{header|JavaScript}}==
{{works with|JScript}}
Throws an error if the destination file/folder exists.
<langsyntaxhighlight 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")</langsyntaxhighlight>
 
=={{header|Joy}}==
<syntaxhighlight lang=Joy"joy">
"input.txt" "output.txt" frename
"/input.txt" "/output.txt" frename
Line 613:
 
=={{header|Jsish}}==
<langsyntaxhighlight lang="javascript">/* File rename, in jsish */
try { File.rename('input.txt', 'output.txt', false); } catch (str) { puts(str); }
 
Line 621:
 
try { File.rename('docs', 'mydocs', false); } catch (str) { puts(str); }
try { File.rename('/docs', '/mydocs', false); } catch (str) { puts(str); }</langsyntaxhighlight>
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">
mv("input.txt", "output.txt")
mv("docs", "mydocs")
mv("/input.txt", "/output.txt")
mv("/docs", "/mydocs")</langsyntaxhighlight>
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang="scala">// version 1.0.6
 
/* testing on Windows 10 which needs administrative privileges
Line 651:
println("${oldPaths[i]} could not be renamed")
}
}</langsyntaxhighlight>
 
{{out}}
Line 662:
 
=={{header|Lasso}}==
<langsyntaxhighlight Lassolang="lasso ">// move file
local(f = file('input.txt'))
#f->moveTo('output.txt')
Line 678:
// move directory in root file system (requires permissions at user OS level)
local(d = file('//docs'))
#d->moveTo('//mydocs')</langsyntaxhighlight>
 
=={{header|LFE}}==
 
<langsyntaxhighlight lang="lisp">
(file:rename "input.txt" "output.txt")
(file:rename "docs" "mydocs")
(file:rename "/input.txt" "/output.txt")
(file:rename "/docs" "/mydocs")
</syntaxhighlight>
</lang>
 
=={{header|Liberty BASIC}}==
<langsyntaxhighlight lang="lb">' LB has inbuilt 'name' command, but can also run batch files
 
nomainwin
Line 699:
run "cmd.exe /c ren C:\docs mydocs", HIDE
 
end</langsyntaxhighlight>
 
=={{header|LiveCode}}==
<langsyntaxhighlight LiveCodelang="livecode">rename file "input.txt" to "output.txt"
rename folder "docs" to "mydocs"
rename file "/input.txt" to "/output.txt"
rename folder "/docs" to "/mydocs"</langsyntaxhighlight>
 
=={{header|Locomotive Basic}}==
 
<langsyntaxhighlight lang="locobasic">|ren,"input.txt","output.txt"</langsyntaxhighlight>
([[wp:AMSDOS|AMSDOS]] RSX command, therefore prefixed with a vertical bar. Also, there are no subdirectories in AMSDOS, so there is no way to do the other tests.)
 
=={{header|Lua}}==
<langsyntaxhighlight lang="lua">os.rename( "input.txt", "output.txt" )
os.rename( "/input.txt", "/output.txt" )
os.rename( "docs", "mydocs" )
os.rename( "/docs", "/mydocs" )</langsyntaxhighlight>
 
=={{header|M2000 Interpreter}}==
To delete a file we have to use Dos shell,so this can be done using Dos command
<syntaxhighlight lang="m2000 interpreter">
<lang M2000 Interpreter>
Module checkit {
Document A$={Alfa, beta}
Line 731:
}
checkit
</syntaxhighlight>
</lang>
 
=={{header|Maple}}==
<langsyntaxhighlight Maplelang="maple">use FileTools in
Rename( "input.txt", "output.txt" );
Rename( "docs", "mydocs" );
Rename( "/input.txt", "/output.txt" ); # assuming permissions in /
Rename( "/docs", "/mydocs" ) # assuming permissions in /
end use:</langsyntaxhighlight>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">SetDirectory[NotebookDirectory[]]
RenameFile["input.txt", "output.txt"]
RenameDirectory["docs", "mydocs"]
SetDirectory[$RootDirectory]
RenameFile["input.txt", "output.txt"]
RenameDirectory["docs", "mydocs"]</langsyntaxhighlight>
 
=={{header|MATLAB}} / {{header|Octave}}==
 
<langsyntaxhighlight Matlablang="matlab"> [STATUS, MSG, MSGID] = movefile (F1, F2); </langsyntaxhighlight>
 
=={{header|MAXScript}}==
MAXScript has no folder rename method
<langsyntaxhighlight lang="maxscript">-- Here
renameFile "input.txt" "output.txt"
-- Root
renameFile "/input.txt" "/output.txt"</langsyntaxhighlight>
 
=={{header|Mercury}}==
<langsyntaxhighlight lang="mercury">:- module rename_file.
:- interface.
 
Line 794:
io.write_string(Stderr, io.error_message(Error), !IO),
io.nl(Stderr, !IO),
io.set_exit_status(1, !IO).</langsyntaxhighlight>
 
=={{header|MUMPS}}==
<p>ANSI MUMPS doesn't allow access to the operating system except possibly through the View command and $View function, both of which are implementation specific. Intersystems' Caché does allow you to create processes with the $ZF function, and if the permissions for the Caché process allow it you can perform operating system commands.</p>
<p>In Cache on OpenVMS in an FILES-11 filesystem ODS-5 mode these could work:</p>
<langsyntaxhighlight MUMPSlang="mumps"> ;Local
S X=$ZF(-1,"rename input.txt output.txt")
S X=$ZF(-1,"rename docs.dir mydocs.dir")
;Root of current device
S X=$ZF(-1,"rename [000000]input.txt [000000]output.txt")
S X=$ZF(-1,"rename [000000]docs.dir [000000]mydocs.dir")</langsyntaxhighlight>
 
=={{header|NetRexx}}==
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
options replace format comments java crossref symbols binary
 
Line 843:
 
return
</syntaxhighlight>
</lang>
 
=={{header|NewLISP}}==
<langsyntaxhighlight NewLISPlang="newlisp">(rename-file "./input.txt" "./output.txt")
(rename-file "./docs" "./mydocs")
(rename-file "/input.txt" "/output.txt")
(rename-file "/docs" "/mydocs")</langsyntaxhighlight>
 
=={{header|Nim}}==
<langsyntaxhighlight lang="nim">import os
 
moveFile("input.txt", "output.txt")
Line 858:
 
moveFile(DirSep & "input.txt", DirSep & "output.txt")
moveFile(DirSep & "docs", DirSep & "mydocs")</langsyntaxhighlight>
 
=={{header|Objeck}}==
<langsyntaxhighlight lang="objeck">
use IO;
bundle Default {
Line 873:
}
}
</syntaxhighlight>
</lang>
 
=={{header|Objective-C}}==
Line 880:
{{works with|GNUstep}}
 
<langsyntaxhighlight lang="objc">NSFileManager *fm = [NSFileManager defaultManager];
 
// Pre-OS X 10.5
Line 888:
// OS X 10.5+
[fm moveItemAtPath:@"input.txt" toPath:@"output.txt" error:NULL];
[fm moveItemAtPath:@"docs" toPath:@"mydocs" error:NULL];</langsyntaxhighlight>
 
=={{header|OCaml}}==
<langsyntaxhighlight lang="ocaml">
let () =
Sys.rename "input.txt" "output.txt";
Sys.rename "docs" "mydocs";
Sys.rename "/input.txt" "/output.txt";
Sys.rename "/docs" "/mydocs";</langsyntaxhighlight>
 
=={{header|Octave}}==
<langsyntaxhighlight lang="octave">
rename('docs','mydocs');
rename('input.txt','/output.txt');
rename('/docs','/mydocs');
</syntaxhighlight>
</lang>
 
=={{header|OpenEdge/Progress}}==
<langsyntaxhighlight lang="progress">OS-RENAME "input.txt" "output.txt".
OS-RENAME "docs" "mydocs".
 
OS-RENAME "/input.txt" "/output.txt".
OS-RENAME "/docs" "/mydocs".</langsyntaxhighlight>
 
=={{header|PARI/GP}}==
GP has no built-in facilities for renaming, but can use a system call:
<langsyntaxhighlight lang="parigp">system("mv input.txt output.txt");
system("mv /input.txt /output.txt");
system("mv docs mydocs");
system("mv /docs /mydocs");</langsyntaxhighlight>
PARI, as usual, has access to all the standard [[#C|C]] methods.
 
Alternatively it's possible to bind rename() system call to a new function:
<langsyntaxhighlight lang="parigp">install("rename","iss","rename");
rename("input.txt", "output.txt");</langsyntaxhighlight>
 
=={{header|Pascal}}==
<langsyntaxhighlight lang="pascal"> var
f : file ; // Untyped file
begin
Line 946:
Rename(f,'\mydocs');
end;</langsyntaxhighlight>
 
=={{header|Perl}}==
<langsyntaxhighlight lang="perl">use File::Copy qw(move);
use File::Spec::Functions qw(catfile rootdir);
# here
Line 956:
# root dir
move (catfile rootdir, 'input.txt'), (catfile rootdir, 'output.txt');
move (catfile rootdir, 'docs'), (catfile rootdir, 'mydocs');</langsyntaxhighlight>
 
The core <code>rename($oldfile,$newfile)</code> can rename a file within a directory, but has the usual limitations of the <code>rename()</code> system call or C library function, which means generally not working across filesystems, and perhaps not working to rename directories. <code>move()</code> does a copy and delete when necessary.
Line 963:
Windows now makes it fairly difficult to rename files in the root directory, even by hand.
Output is 0 for success, 1 for failure.
<!--<langsyntaxhighlight Phixlang="phix">(notonline)-->
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- (file i/o)</span>
<span style="color: #0000FF;">?</span><span style="color: #000000;">rename_file</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"input.txt"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"output.txt"</span><span style="color: #0000FF;">)</span>
Line 969:
<span style="color: #0000FF;">?</span><span style="color: #000000;">rename_file</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"C:\\Copy.txt"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Copy.xxx"</span><span style="color: #0000FF;">)</span>
<span style="color: #0000FF;">?</span><span style="color: #000000;">rename_file</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"C:\\docs"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"C:\\mydocs"</span><span style="color: #0000FF;">)</span>
<!--</langsyntaxhighlight>-->
 
=={{header|Phixmonti}}==
<langsyntaxhighlight Phixmontilang="phixmonti">_platform "windows" == if "\\" "ren " else "/" "mv " endif
var com var slash
 
Line 978:
com "docs mydocs" chain cmd
com slash chain "input.txt " chain slash chain "output.txt" chain cmd
com slash chain "docs " chain slash chain "mydocs" chain cmd</langsyntaxhighlight>
 
=={{header|PHP}}==
<langsyntaxhighlight lang="php"><?php
rename('input.txt', 'output.txt');
rename('docs', 'mydocs');
rename('/input.txt', '/output.txt');
rename('/docs', '/mydocs');
?></langsyntaxhighlight>
 
=={{header|PicoLisp}}==
<langsyntaxhighlight PicoLisplang="picolisp">(call 'mv "input.txt" "output.txt")
(call 'mv "docs" "mydocs")
(call 'mv "/input.txt" "/output.txt")
(call 'mv "/docs" "/mydocs")</langsyntaxhighlight>
 
=={{header|Pike}}==
<langsyntaxhighlight lang="pike">int main(){
mv("input.txt", "output.txt");
mv("/input.txt", "/output.txt");
mv("docs", "mydocs");
mv("/docs", "/mydocs");
}</langsyntaxhighlight>
 
=={{header|Pop11}}==
<langsyntaxhighlight 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');</langsyntaxhighlight>
 
Note that notion of the root of filesystem is Unix specific, so above we
Line 1,012:
 
=={{header|PowerShell}}==
<langsyntaxhighlight lang="powershell">Rename-Item input.txt output.txt
 
# The Rename-item has the alias ren
ren input.txt output.txt</langsyntaxhighlight>
 
=={{header|Processing}}==
<langsyntaxhighlight lang="processing">void setup(){
boolean sketchfile = rename(sketchPath("input.txt"), sketchPath("output.txt"));
boolean sketchfold = rename(sketchPath("docs"), sketchPath("mydocs"));
Line 1,036:
boolean success = file.renameTo(file2);
return success;
}</langsyntaxhighlight>
 
===Processing Python mode===
<langsyntaxhighlight lang="python">from java.io import File
 
def setup():
Line 1,067:
# Rename file (or directory)
success = file.renameTo(file2)
return success</langsyntaxhighlight>
 
=={{header|ProDOS}}==
<langsyntaxhighlight ProDOSlang="prodos">rename input.txt to output.txt
rename docs to mydocs</langsyntaxhighlight>
 
=={{header|PureBasic}}==
 
<langsyntaxhighlight lang="purebasic">RenameFile("input.txt", "output.txt")
RenameFile("docs\", "mydocs\")
 
RenameFile("/input.txt","/output.txt")
RenameFile("/docs\","/mydocs\")</langsyntaxhighlight>
 
=={{header|Python}}==
 
<langsyntaxhighlight lang="python">import os
 
os.rename("input.txt", "output.txt")
Line 1,089:
 
os.rename(os.sep + "input.txt", os.sep + "output.txt")
os.rename(os.sep + "docs", os.sep + "mydocs")</langsyntaxhighlight>
 
Or the alternative:
 
<langsyntaxhighlight lang="python">import shutil
 
shutil.move("input.txt", "output.txt")
Line 1,099:
 
shutil.move("/input.txt", "/output.txt")
shutil.move("/docs", "/mydocs")</langsyntaxhighlight>
 
=={{header|Quackery}}==
Line 1,105:
Quackery does not have a full set of file and directory handling words, so we pass a script string to the host language. A word could be defined in Quackery to construct the appropriate script string; this is the "once-off" version.
 
<langsyntaxhighlight Quackerylang="quackery"> $ "
import os
if os.path.exists('input.txt'):
Line 1,127:
if os.path.exists('/docs'):
os.rename('/docs', '/mydocs')
" python</langsyntaxhighlight>
 
=={{header|Racket}}==
 
<langsyntaxhighlight lang="racket">
#lang racket
 
Line 1,144:
(rename-file-or-directory (build-path root "docs")
(build-path root "mydocs"))
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
<syntaxhighlight lang="raku" perl6line>rename 'input.txt', 'output.txt';
rename 'docs', 'mydocs';
rename '/input.txt', '/output.txt';
rename '/docs', '/mydocs';</langsyntaxhighlight>
 
=={{header|Raven}}==
<langsyntaxhighlight Ravenlang="raven">`mv /path/to/file/oldfile /path/to/file/newfile` shell</langsyntaxhighlight>
 
=={{header|REALbasic}}==
Line 1,160:
This ''should'' work regardless of what OS it's running under (but untested under [[Mac OS]]).
 
<langsyntaxhighlight lang="vb">Sub Renamer()
Dim f As FolderItem, r As FolderItem
 
Line 1,188:
Return what
End If
End Function</langsyntaxhighlight>
 
=={{header|REBOL}}==
<langsyntaxhighlight REBOLlang="rebol">rename %input.txt %output.txt
rename %docs/ %mydocs/
 
Line 1,210:
rename ftp://username:password@ftp.site.com/www/input.txt %output.txt
rename ftp://username:password@ftp.site.com/www/docs/ %mydocs/
</syntaxhighlight>
</lang>
 
=={{header|REXX}}==
===error messages shown===
<langsyntaxhighlight lang="rexx">/*REXX program renames a file & a directory (in current dir & in root).*/
trace off /*suppress error messages, bad RC*/
 
Line 1,222:
'CD' "\" /*for 2nd pass, change──►root dir*/
end /*2*/
/*stick a fork in it, we're done.*/</langsyntaxhighlight>
 
===error messages suppressed===
<langsyntaxhighlight lang="rexx">/*REXX program renames a file & a directory (in current dir & in root).*/
trace off /*suppress error messages, bad RC*/
$ = '2> NUL' /*used to suppress error messages*/
Line 1,234:
'CD' "\" $ /*for 2nd pass, change──►root dir*/
end /*2*/
/*stick a fork in it, we're done.*/</langsyntaxhighlight>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
rename("input.txt", "output.txt")
rename("docs", "mydocs")
rename("/input.txt", "/output.txt")
rename("/docs", "/mydocs")
</syntaxhighlight>
</lang>
 
=={{header|Ruby}}==
<langsyntaxhighlight lang="ruby">File.rename('input.txt', 'output.txt')
File.rename('/input.txt', '/output.txt')
File.rename('docs', 'mydocs')
File.rename('/docs', '/mydocs')</langsyntaxhighlight>
 
With 'fileutils' from the standard library: The <tt>FileUtils#move</tt> method has some more flexibility than the core <tt>File#rename</tt> method (not really demonstrated here).
 
<langsyntaxhighlight 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 ) }</langsyntaxhighlight>
 
=={{header|Run BASIC}}==
RB has no direct command. You Shell out to windows or unix.
<langsyntaxhighlight lang="runbasic">a$ = shell$("RENAME input.txt output.txt")
a$ = shell$("RENAME docs mydocs")
a$ = shell$("RENAME \input.txt \output.txt")
a$ = shell$("RENAME \docs \mydocs")</langsyntaxhighlight>
 
=={{header|Rust}}==
<langsyntaxhighlight lang="rust">
use std::fs;
 
Line 1,274:
fs::rename("/docs", "/mydocs").ok().expect(err);
}
</syntaxhighlight>
</lang>
 
=={{header|Scala}}==
{{libheader|Scala}}
===Straight forward===
<langsyntaxhighlight Scalalang="scala">import scala.language.implicitConversions
import java.io.File
 
Line 1,290:
"/tmp/mydir" renameTo "/tmp/anotherdir"
}
}</langsyntaxhighlight>
 
===Alternative===
<syntaxhighlight lang="scala">
<lang Scala>
object Rename1 {
def main(args: Array[String]) {
Line 1,302:
}
}
</syntaxhighlight>
</lang>
 
=={{header|Scheme}}==
{{works with|Chicken Scheme}}
{{works with|Guile}}
<langsyntaxhighlight lang="scheme">(rename-file "input.txt" "output.txt")
(rename-file "docs" "mydocs")
(rename-file "/input.txt" "/output.txt")
(rename-file "/docs" "/mydocs")</langsyntaxhighlight>
 
=={{header|Seed7}}==
Line 1,322:
when it is started by a normal user.
 
<langsyntaxhighlight lang="seed7">$ include "seed7_05.s7i";
include "osfiles.s7i";
 
Line 1,331:
moveFile("/input.txt", "/output.txt");
moveFile("/docs", "/mydocs");
end func;</langsyntaxhighlight>
 
Under Windows each filesystem has its own root.
Line 1,338:
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby"># Here
File.rename('input.txt', 'output.txt');
File.rename('docs', 'mydocs');
Line 1,344:
# Root dir
File.rename(Dir.root + %f'input.txt', Dir.root + %f'output.txt');
File.rename(Dir.root + %f'docs', Dir.root + %f'mydocs');</langsyntaxhighlight>
 
=={{header|Slate}}==
<langsyntaxhighlight 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'.</langsyntaxhighlight>
 
=={{header|Smalltalk}}==
{{works with|GNU Smalltalk}}
<langsyntaxhighlight 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'</langsyntaxhighlight>
{{works with|Smalltalk/X}}
{{works with|VisualWorks Smalltalk}}
<langsyntaxhighlight lang="smalltalk">'input.txt' asFilename renameTo: 'output.txt'.
'docs' asFilename renameTo: 'mydocs'.
'/input.txt' asFilename renameTo: '/output.txt'.
'/docs' asFilename renameTo: '/mydocs'</langsyntaxhighlight>
{{works with|Pharo Smalltalk}}
<langsyntaxhighlight lang="smalltalk">'input.txt' asFileReference renameTo: 'output.txt'.
'docs' asFileReference renameTo: 'mydocs'.
'/input.txt' asFileReference renameTo: '/output.txt'.
'/docs' asFileReference renameTo: '/mydocs'</langsyntaxhighlight>
 
=={{header|Standard ML}}==
<langsyntaxhighlight 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"};</langsyntaxhighlight>
 
=={{header|Stata}}==
Use a '''[http://www.stata.com/help.cgi?shell shell]''' command. The following works on Windows, there are similar commands on other operating systems.
 
<langsyntaxhighlight lang="stata">!ren input.txt output.txt
!ren docs mydocs</langsyntaxhighlight>
 
=={{header|Tcl}}==
<i>Assuming</i> 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):
<langsyntaxhighlight 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]</langsyntaxhighlight>
Without the need to work on unusual platforms like Mac OS 9, the code could be just:
<langsyntaxhighlight lang="tcl">file rename inputs.txt output.txt
file rename docs mydocs
file rename /inputs.txt /output.txt
file rename /docs /mydocs</langsyntaxhighlight>
 
=={{header|Toka}}==
<langsyntaxhighlight lang="toka">needs shell
" input.txt" " output.txt" rename
" /input.txt" " /output.txt" rename
 
" docs" " mydocs" rename
" /docs" " /mydocs" rename</langsyntaxhighlight>
 
=={{header|TorqueScript}}==
<langsyntaxhighlight Torquelang="torque">fileCopy("Input.txt", "Output.txt");
fileDelete("Input.txt");
 
Line 1,414:
fileCopy(%File, "OtherPath/" @ %File);
fileDelete(%File);
}</langsyntaxhighlight>
 
=={{header|TUSCRIPT}}==
<langsyntaxhighlight lang="tuscript">
$$ MODE TUSCRIPT
- rename file
Line 1,423:
- rename directory
ERROR/STOP RENAME ("docs","mydocs",-std-)
</syntaxhighlight>
</lang>
 
=={{header|TXR}}==
Line 1,429:
TXR works with native paths.
 
<langsyntaxhighlight lang="txrlisp">(rename-path "input.txt" "output.txt")
;; Windows (MinGW based port)
(rename-path "C:\\input.txt" "C:\\output.txt")
;; Unix; Windows (Cygwin port)
(rename-path "/input.txt" "/output.txt"))</langsyntaxhighlight>
 
Directories are renamed the same way; <code>input.txt</code> could be a directory.
 
=={{header|UNIX Shell}}==
<langsyntaxhighlight lang="bash">mv input.txt output.txt
mv /input.txt /output.txt
mv docs mydocs
mv /docs /mydocs</langsyntaxhighlight>
 
=={{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.
<langsyntaxhighlight lang="vedit">// In current directory
File_Rename("input.txt", "output.txt")
File_Rename("docs", "mydocs")
Line 1,451:
// In the root directory
File_Rename("/input.txt", "/output.txt")
File_Rename("/docs", "/mydocs")</langsyntaxhighlight>
 
=={{header|Visual Basic .NET}}==
Line 1,457:
 
{{works with|Visual Basic .NET|9.0+}}
<langsyntaxhighlight lang="vbnet">'Current Directory
IO.Directory.Move("docs", "mydocs")
IO.File.Move("input.txt", "output.txt")
Line 1,469:
IO.Path.DirectorySeparatorChar & "mydocs")
IO.File.Move(IO.Path.DirectorySeparatorChar & "input.txt", _
IO.Path.DirectorySeparatorChar & "output.txt")</langsyntaxhighlight>
 
=={{header|Wren}}==
{{libheader|Wren-ioutil}}
Wren-cli does not currently have the ability to rename directories, just files.
<langsyntaxhighlight lang="ecmascript">import "/ioutil" for FileUtil
 
FileUtil.move("input.txt", "output.txt")
FileUtil.move("/input.txt", "/output.txt")</langsyntaxhighlight>
 
=={{header|Yabasic}}==
<langsyntaxhighlight Yabasiclang="yabasic">if peek$("os") = "windows" then
slash$ = "\\" : com$ = "ren "
else
Line 1,489:
system(com$ + "docs mydocs")
system(com$ + slash$ + "input.txt " + slash$ + "output.txt")
system(com$ + slash$ + "docs " + slash$ + "mydocs")</langsyntaxhighlight>
 
=={{header|Yorick}}==
{{trans|UNIX Shell}}
<langsyntaxhighlight lang="yorick">rename, "input.txt", "output.txt";
rename, "/input.txt", "/output.txt";
rename, "docs", "mydocs";
rename, "/docs", "/mydocs";</langsyntaxhighlight>
 
=={{header|zkl}}==
10,327

edits