Delete a file: Difference between revisions

m
syntax highlighting fixup automation
(add BQN)
m (syntax highlighting fixup automation)
Line 8:
 
=={{header|11l}}==
<langsyntaxhighlight lang="11l">fs:remove_file(‘output.txt’)
fs:remove_dir(‘docs’)
fs:remove_file(‘/output.txt’)
fs:remove_dir(‘/docs’)</langsyntaxhighlight>
 
=={{header|8th}}==
<syntaxhighlight lang="forth">
<lang Forth>
"input.txt" f:rm drop
"/input.txt" f:rm drop
"docs" f:rmdir drop
"/docs" f:rmdir drop
</syntaxhighlight>
</lang>
The 'drop' removes the result (true or false, indicating success or failure). It is not strictly necessary to do so, but it keeps the stack clean.
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang="aarch64 assembly">
<lang AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program deleteFic64.s */
Line 104:
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</syntaxhighlight>
</lang>
=={{header|Action!}}==
The attached result has been obtained under DOS 2.5.
<langsyntaxhighlight Actionlang="action!">PROC Dir(CHAR ARRAY filter)
CHAR ARRAY line(255)
BYTE dev=[1]
Line 141:
PrintF("Dir ""%S""%E",filter)
Dir(filter)
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Delete_a_file.png Screenshot from Atari 8-bit computer]
Line 160:
 
=={{header|Ada}}==
<langsyntaxhighlight lang="ada">with Ada.Directories; use Ada.Directories;</langsyntaxhighlight>
and then
<langsyntaxhighlight lang="ada">Delete_File ("input.txt");
Delete_File ("/input.txt");
Delete_Tree ("docs");
Delete_Tree ("/docs");</langsyntaxhighlight>
Naming conventions for the file path are [[OS]]-specific. The language does not specify the encoding of the file paths, the directory separators or brackets, the file extension delimiter, the file version delimiter and syntax. The example provided works under [[Linux]] and [[Windows]].
 
=={{header|Aikido}}==
The <code>remove</code> function removes either a file or a directory (the directory must be empty for this to work). Exception is thrown if this fails.
<langsyntaxhighlight lang="aikido">
remove ("input.txt")
remove ("/input.txt")
remove ("docs")
remove ("/docs")
</syntaxhighlight>
</lang>
 
=={{header|Aime}}==
<langsyntaxhighlight lang="aime">remove("input.txt");
remove("/input.txt");
remove("docs");
remove("/docs");</langsyntaxhighlight>
 
=={{header|ALGOL 68}}==
Note: <tt>scratch</tt> does not appear to do anything on [[ALGOL 68G]]. Also note that file names are Operating System dependent.
<langsyntaxhighlight lang="algol68">main:(
PROC remove = (STRING file name)INT:
BEGIN
Line 201:
remove("docs");
remove("/docs")
)</langsyntaxhighlight>
=={{header|ARM Assembly}}==
{{works with|as|Raspberry Pi}}
<syntaxhighlight lang="arm assembly">
<lang ARM Assembly>
/* ARM assembly Raspberry PI */
/* program deleteFic.s */
Line 283:
/***************************************************/
.include "../affichage.inc"
</syntaxhighlight>
</lang>
 
=={{header|Arturo}}==
<langsyntaxhighlight lang="rebol">file: "input.txt"
docs: "docs"
 
Line 293:
 
delete join.path ["/" file]
delete.directory join.path ["/" docs]</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
<langsyntaxhighlight AutoHotkeylang="autohotkey">FileDelete, input.txt
FileDelete, \input.txt
FileRemoveDir, docs, 1
FileRemoveDir, \docs, 1</langsyntaxhighlight>
===with DllCall===
Source: [https://github.com/jNizM/AHK_DllCall_WinAPI/ DeleteFile @github] by jNizM
<langsyntaxhighlight AutoHotkeylang="autohotkey">DeleteFile(lpFileName)
{
DllCall("Kernel32.dll\DeleteFile", "Str", lpFileName)
}
 
DeleteFile("C:\Temp\TestFile.txt")</langsyntaxhighlight>
 
=={{header|AWK}}==
Assuming we are on a Unix/Linux or at least Cygwin system:
<langsyntaxhighlight lang="awk">system("rm input.txt")
system("rm /input.txt")
system("rm -rf docs")
system("rm -rf /docs")</langsyntaxhighlight>
 
=={{header|Axe}}==
<langsyntaxhighlight lang="axe">DelVar "appvINPUT"</langsyntaxhighlight>
 
=={{header|BASIC}}==
Line 326:
Some versions of Qbasic may have had a builtin RMDIR command. However this is not documented in the manual, so we use the external MSDOS command in this example.
 
<langsyntaxhighlight lang="qbasic">
KILL "INPUT.TXT"
KILL "C:\INPUT.TXT"
SHELL "RMDIR /S /Q DIR"
SHELL "RMDIR /S /Q C:\DIR"
</syntaxhighlight>
</lang>
 
==={{header|Applesoft BASIC}}===
There are disk volumes, but no folders in DOS 3.3.
<langsyntaxhighlight lang="gwbasic"> 0 PRINT CHR$ (4)"DELETE INPUT.TXT"</langsyntaxhighlight>
==={{header|BaCon}}===
BaCon has a <tt>DELETE</tt> instruction, that accepts <tt>FILE|DIRECTORY|RECURSIVE</tt> options.
 
<langsyntaxhighlight lang="freebasic">DELETE FILE "input.txt"
DELETE FILE "/input.txt"</langsyntaxhighlight>
 
Errors can be caught with the <tt>CATCH GOTO label</tt> instruction (which allows <tt>RESUME</tt> from the labelled code section).
Line 349:
file extensions. Here we delete the file named INPUTTXT from the first microdrive:
 
<langsyntaxhighlight lang="zxbasic">
ERASE "m"; 1; "INPUTTXT"
</syntaxhighlight>
</lang>
 
And for disc drive of ZX Spectrum +3:
 
<langsyntaxhighlight lang="zxbasic">
ERASE "a:INPUTTXT"
</syntaxhighlight>
</lang>
 
==={{header|BBC BASIC}}===
If the names are known as constants at compile time:
<langsyntaxhighlight lang="bbcbasic">
*DELETE input.txt
*DELETE \input.txt
*RMDIR docs
*RMDIR \docs
</syntaxhighlight>
</lang>
If the names are known only at run time:
<langsyntaxhighlight BBClang="bbc BASICbasic"> OSCLI "DELETE " + file$
OSCLI "RMDIR " + dir$</langsyntaxhighlight>
 
==={{header|IS-BASIC}}===
<langsyntaxhighlight ISlang="is-BASICbasic">100 WHEN EXCEPTION USE IOERROR
110 EXT "del input.txt"
120 EXT "del \input.txt"
Line 382:
180 PRINT "*** ";EXSTRING$(EXTYPE)
190 CONTINUE
200 END HANDLER</langsyntaxhighlight>
 
=={{header|Batch File}}==
<langsyntaxhighlight lang="dos">del input.txt
rd /s /q docs
 
del \input.txt
rd /s /q \docs</langsyntaxhighlight>
 
=={{header|BQN}}==
File operations are under the system value <code>•file</code> in BQN.
 
<langsyntaxhighlight lang="bqn">•file.Remove "input.txt"
•file.Remove "/input.txt"
•file.RemoveDir "docs"
•file.RemoveDir "/docs"</langsyntaxhighlight>
 
=={{header|C}}==
ISO C:
<langsyntaxhighlight lang="c">#include <stdio.h>
 
int main() {
Line 409:
remove("/docs");
return 0;
}</langsyntaxhighlight>
 
POSIX:
<langsyntaxhighlight lang="c">#include <unistd.h>
 
int main() {
Line 420:
rmdir("/docs");
return 0;
}</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
<langsyntaxhighlight lang="csharp">using System;
using System.IO;
 
Line 439:
}
}
}</langsyntaxhighlight>
 
=={{header|C++}}==
<langsyntaxhighlight lang="cpp">#include <cstdio>
#include <direct.h>
 
Line 452:
 
return 0;
}</langsyntaxhighlight>
 
=={{header|Clojure}}==
<langsyntaxhighlight lang="lisp">(import '(java.io File))
(.delete (File. "output.txt"))
(.delete (File. "docs"))
 
(.delete (new File (str (File/separator) "output.txt")))
(.delete (new File (str (File/separator) "docs")))</langsyntaxhighlight>
 
=={{header|COBOL}}==
Line 466:
{{works with|Visual COBOL}}
{{works with|OpenCOBOL}}
<langsyntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. Delete-Files.
 
Line 476:
 
GOBACK
.</langsyntaxhighlight>
 
Alternate method of deleting files using the <code>DELETE FILE</code> statement.
{{works with|Visual COBOL}}
<langsyntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. Delete-Files-2.
 
Line 502:
 
GOBACK
.</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
<langsyntaxhighlight lang="lisp">(delete-file (make-pathname :name "input.txt"))
(delete-file (make-pathname :directory '(:absolute "") :name "input.txt"))</langsyntaxhighlight>
To delete directories we need an implementation specific extension. In clisp this is ''ext:delete-dir''.
{{works with|CLISP}}
<langsyntaxhighlight lang="lisp">(let ((path (make-pathname :directory '(:relative "docs"))))
(ext:delete-dir path))
 
(let ((path (make-pathname :directory '(:absolute "docs"))))
(ext:delete-dir path))</langsyntaxhighlight>
 
Or you can use the portability library CL-FAD:
 
{{libheader|CL-FAD}}
<langsyntaxhighlight lang="lisp">(let ((path (make-pathname :directory '(:relative "docs"))))
(cl-fad:delete-directory-and-files path))</langsyntaxhighlight>
 
=={{header|Component Pascal}}==
{{Works with|BlackBox Component Builder}}
<langsyntaxhighlight lang="oberon2">
VAR
l: Files.Locator;
Line 532:
Files.dir.Delete(l,"xx.txt");
END ...
</syntaxhighlight>
</lang>
 
=={{header|D}}==
{{works with|D|2}}
<langsyntaxhighlight lang="d">import std.file: remove;
 
void main() {
remove("data.txt");
}</langsyntaxhighlight>
{{libheader|Tango}}
<langsyntaxhighlight lang="d">import tango.io.Path;
 
void main() {
Line 549:
remove("docs");
remove("/docs");
}</langsyntaxhighlight>
 
{{libheader|Tango}}
POSIX:
<langsyntaxhighlight lang="d">import tango.stdc.posix.unistd;
 
void main() {
Line 560:
rmdir("docs");
rmdir("/docs");
}</langsyntaxhighlight>
 
=={{header|Delphi}}==
<langsyntaxhighlight lang="e">procedure TMain.btnDeleteClick(Sender: TObject);
var
CurrentDirectory : String;
Line 575:
RmDir(PChar('c:\docs'));
end;
</syntaxhighlight>
</lang>
 
=={{header|E}}==
<langsyntaxhighlight lang="e"><file:input.txt>.delete(null)
<file:docs>.delete(null)
<file:///input.txt>.delete(null)
<file:///docs>.delete(null)</langsyntaxhighlight>
 
=={{header|Elena}}==
ELENA 4.x :
<langsyntaxhighlight lang="elena">import system'io;
public program()
Line 596:
Directory.assign("\docs").delete();
}</langsyntaxhighlight>
 
=={{header|Elixir}}==
<langsyntaxhighlight lang="elixir">File.rm!("input.txt")
File.rmdir!("docs")
File.rm!("/input.txt")
File.rmdir!("/docs")</langsyntaxhighlight>
 
=={{header|Emacs Lisp}}==
<langsyntaxhighlight Lisplang="lisp">(delete-file "input.txt")
(delete-directory "docs")
(delete-file "/input.txt")
(delete-directory "/docs")</langsyntaxhighlight>
 
=={{header|Erlang}}==
<langsyntaxhighlight lang="erlang">
-module(delete).
-export([main/0]).
Line 622:
ok = file:del_dir( "/docs" ),
ok = file:delete( "/input.txt" ).
</syntaxhighlight>
</lang>
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">open System.IO
 
[<EntryPoint>]
Line 634:
ignore (File.Delete(Path.Combine(path, fileName)))
ignore (Directory.Delete(Path.Combine(path, dirName)))
0</langsyntaxhighlight>
 
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">"docs" "/docs" [ delete-tree ] bi@
"input.txt" "/input.txt" [ delete-file ] bi@</langsyntaxhighlight>
 
=={{header|Forth}}==
There is no means to delete directories in ANS Forth.
<langsyntaxhighlight lang="forth"> s" input.txt" delete-file throw
s" /input.txt" delete-file throw</langsyntaxhighlight>
 
=={{header|Fortran}}==
Line 649:
{{works with|Fortran|90 and later}}
 
<langsyntaxhighlight lang="fortran"> OPEN (UNIT=5, FILE="input.txt", STATUS="OLD") ! Current directory
CLOSE (UNIT=5, STATUS="DELETE")
OPEN (UNIT=5, FILE="/input.txt", STATUS="OLD") ! Root directory
CLOSE (UNIT=5, STATUS="DELETE")</langsyntaxhighlight>
=== Intel Fortran on Windows ===
 
Use Intel Fortran bindings to the Win32 API. Here we are using the [https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-deletefilea DeleteFileA] and [https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-removedirectorya RemoveDirectoryA] functions.
 
<langsyntaxhighlight lang="fortran">program DeleteFileExample
use kernel32
implicit none
Line 664:
print *, RemoveDirectory("docs")
print *, RemoveDirectory("\docs")
end program</langsyntaxhighlight>
 
=={{header|Free Pascal}}==
All required functions already exist in the RTL’s (run-time library) <code>system</code> unit which is shipped with every FPC (Free Pascal compiler) distribution and automatically included by every program.
<langsyntaxhighlight lang="pascal">program deletion(input, output, stdErr);
const
rootDirectory = '/'; // might have to be altered for other platforms
Line 685:
rmDir(rootDirectory + docsFilename);
end.</langsyntaxhighlight>
Note, depending on the <code>{$IOChecks}</code> compiler switch state, run-time error generation is inserted.
In particular deletion of non-existent files or lack of privileges may cause an abort.
Line 693:
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">' FB 1.05.0 Win64
' delete file and empty sub-directory in current directory
Line 708:
Print "Press any key to quit"
Sleep
</syntaxhighlight>
</lang>
 
=={{header|Furor}}==
<syntaxhighlight lang="furor">
<lang Furor>
###sysinclude dir.uh
// ===================
Line 718:
2 argv removefile
end
</syntaxhighlight>
</lang>
<pre>
Usage: furor removefile.upu filename
</pre>
 
<syntaxhighlight lang="furor">
<lang Furor>
###sysinclude dir.uh
#g argc 3 < { ."Usage: " #s 0 argv print SPACE 1 argv print SPACE ."unnecessary_directory\n" end }
Line 730:
}
end
</syntaxhighlight>
</lang>
<pre>
Usage: furor rmdir.upu unnecessary_directory
Line 738:
 
=={{header|Gambas}}==
<langsyntaxhighlight lang="gambas">Public Sub Main()
 
Kill User.home &/ "input.txt"
Line 745:
'Administrative privileges (sudo) would be required to mess about in Root - I'm not going there!
 
End</langsyntaxhighlight>
 
=={{header|GAP}}==
<langsyntaxhighlight lang="gap"># Apparently GAP can only remove a file, not a directory
RemoveFile("input.txt");
# true
RemoveFile("docs");
# fail</langsyntaxhighlight>
 
=={{header|Go}}==
<langsyntaxhighlight lang="go">package main
import "os"
 
Line 766:
os.RemoveAll("docs")
os.RemoveAll("/docs")
}</langsyntaxhighlight>
 
=={{header|Groovy}}==
On most *nix systems, this must be run as sudo for the files in root to be deleted. If you don't have permissions, it will silently fail to delete those files. I would recommend against running anything you find on the internet as sudo.
 
<langsyntaxhighlight lang="groovy">// Gets the first filesystem root. On most systems this will be / or c:\
def fsRoot = File.listRoots().first()
 
Line 788:
files.each{
it.directory ? it.deleteDir() : it.delete()
}</langsyntaxhighlight>
 
=={{header|Haskell}}==
 
<langsyntaxhighlight lang="haskell">import System.IO
import System.Directory
 
Line 799:
removeDirectory "docs"
removeFile "/output.txt"
removeDirectory "/docs"</langsyntaxhighlight>
 
=={{header|HicEst}}==
<langsyntaxhighlight lang="hicest">SYSTEM(DIR="docs") ! create docs in current directory (if not existent), make it current
OPEN (FILE="input.txt", "NEW") ! in current directory = docs
WRITE(FIle="input.txt", DELETE=1) ! no command to DELETE a DIRECTORY in HicEst
Line 808:
SYSTEM(DIR="C:\docs") ! create C:\docs (if not existent), make it current
OPEN (FILE="input.txt", "NEW") ! in current directory = C:\docs
WRITE(FIle="input.txt", DELETE=1)</langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
Icon supports 'remove' for files.
<langsyntaxhighlight Uniconlang="unicon">every dir := !["./","/"] do {
remove(f := dir || "input.txt") |stop("failure for file remove ",f)
rmdir(f := dir || "docs") |stop("failure for directory remove ",f)
}
</syntaxhighlight>
</lang>
Note Icon and Unicon accept both / and \ for directory separators.
 
=={{header|Io}}==
<langsyntaxhighlight lang="io">Directory fileNamed("input.txt") remove
Directory directoryNamed("docs") remove
RootDir := Directory clone setPath("/")
RootDir fileNamed("input.txt") remove
RootDir directoryNamed("docs") remove</langsyntaxhighlight>
 
or
<langsyntaxhighlight lang="io">File with("input.txt") remove
Directory with("docs") remove
File with("/input.txt") remove
Directory with("/docs") remove</langsyntaxhighlight>
 
=={{header|J}}==
The J standard library comes with a set of file access utilities.
<langsyntaxhighlight lang="j"> load 'files'
ferase 'input.txt'
ferase '\input.txt'
Line 841:
 
NB. Or all at once...
ferase 'input.txt';'/input.txt';'docs';'/docs'</langsyntaxhighlight>
 
The function above actually uses a foreign conjunction and defined in the <tt>files</tt> library like so:
<langsyntaxhighlight lang="j">NB. =========================================================
NB.*ferase v erases a file
NB. Returns 1 if successful, otherwise _1
ferase=: (1!:55 :: _1:) @ (fboxname &>) @ boxopen</langsyntaxhighlight>
 
This means that you can directly erase files and directories without loading the <tt>files</tt> library.
<langsyntaxhighlight lang="j">1!:55 <'input.txt'
1!:55 <'\input.txt'
1!:55 <'docs'
1!:55 <'\docs'</langsyntaxhighlight>
 
=={{header|Java}}==
 
<langsyntaxhighlight lang="java">import java.io.File;
 
public class FileDeleteTest {
Line 877:
test("directory", File.seperator + "docs" + File.seperator);
}
}</langsyntaxhighlight>
 
=={{header|JavaScript}}==
{{works with|JScript}}
<langsyntaxhighlight lang="javascript">var fso = new ActiveXObject("Scripting.FileSystemObject");
 
fso.DeleteFile('input.txt');
Line 887:
 
fso.DeleteFolder('docs');
fso.DeleteFolder('c:/docs');</langsyntaxhighlight>
 
or
 
<langsyntaxhighlight lang="javascript">var fso = new ActiveXObject("Scripting.FileSystemObject");
var f;
f = fso.GetFile('input.txt');
Line 900:
f.Delete();
f = fso.GetFolder('c:/docs');
f.Delete();</langsyntaxhighlight>
 
{{works with|Node.js}}
Synchronous
<langsyntaxhighlight lang="javascript">const fs = require('fs');
fs.unlinkSync('myfile.txt');</langsyntaxhighlight>
Asynchronous
<langsyntaxhighlight lang="javascript">const fs = require('fs');
fs.unlink('myfile.txt', ()=>{
console.log("Done!");
})</langsyntaxhighlight>
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">
# Delete a file
rm("input.txt")
Line 919:
# Delete a directory
rm("docs", recursive = true)
</syntaxhighlight>
</lang>
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang="scala">// version 1.0.6
 
/* testing on Windows 10 which needs administrative privileges
Line 939:
println("$path could not be deleted")
}
}</langsyntaxhighlight>
 
{{out}}
Line 962:
 
=={{header|Lasso}}==
<langsyntaxhighlight Lassolang="lasso">// delete file
local(f = file('input.txt'))
#f->delete
Line 978:
// directory must be empty before it can be successfully deleted. A failure is generated if the operation fails.
local(d = file('//docs'))
#d->delete</langsyntaxhighlight>
 
=={{header|Liberty BASIC}}==
<langsyntaxhighlight lang="lb">' show where we are
print DefaultDir$
 
Line 991:
kill "\input.txt"
result=rmdir("\Docs")
</syntaxhighlight>
</lang>
 
=={{header|Lingo}}==
 
Delete file "input.txt" in cwd:
<langsyntaxhighlight lang="lingo">-- note: fileIO xtra is shipped with Director, i.e. an "internal"
fp = xtra("fileIO").new()
fp.openFile("input.txt", 0)
fp.delete()</langsyntaxhighlight>
 
Delete file "input.txt" in root of current volume:
<langsyntaxhighlight lang="lingo">-- note: fileIO xtra is shipped with Director, i.e. an "internal"
pd = the last char of _movie.path -- "\" for win, ":" for mac
_player.itemDelimiter = pd
Line 1,008:
fp = xtra("fileIO").new()
fp.openFile(vol&pd&"input.txt", 0)
fp.delete()</langsyntaxhighlight>
 
Deleting a directory requires a 3rd party xtra, but there are various free xtras that allow this. Here as example usage of BinFile xtra:
 
<langsyntaxhighlight lang="lingo">-- delete (empty) directory "docs" in cwd
bx_folder_delete("docs")
 
Line 1,019:
_player.itemDelimiter = pd
vol = _movie.path.item[1]
bx_folder_delete(vol&pd&"docs")</langsyntaxhighlight>
 
=={{header|Locomotive Basic}}==
 
<langsyntaxhighlight lang="locobasic">|era,"input.txt"</langsyntaxhighlight>
([[wp:AMSDOS|AMSDOS]] RSX command, therefore prefixed with a vertical bar. Also, there are no subdirectories in AMSDOS.)
 
Line 1,029:
{{works with|UCB Logo}}
UCB Logo has no means to delete directories.
<langsyntaxhighlight lang="logo">erasefile "input.txt
erasefile "/input.txt</langsyntaxhighlight>
 
=={{header|Lua}}==
<langsyntaxhighlight lang="lua">os.remove("input.txt")
os.remove("/input.txt")
os.remove("docs")
os.remove("/docs")</langsyntaxhighlight>
 
=={{header|Maple}}==
<langsyntaxhighlight Maplelang="maple">FileTools:-Remove("input.txt");
FileTools:-RemoveDirectory("docs");
FileTools:-Remove("/input.txt");
FileTools:-RemoveDirectory("/docs");
</syntaxhighlight>
</lang>
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">wd = NotebookDirectory[];
DeleteFile[wd <> "input.txt"]
DeleteFile["/" <> "input.txt"]
DeleteDirectory[wd <> "docs"]
DeleteDirectory["/" <> "docs"]</langsyntaxhighlight>
 
=={{header|MATLAB}} / {{header|Octave}}==
 
<langsyntaxhighlight Matlablang="matlab"> delete('input.txt'); % delete local file input.txt
delete('/input.txt'); % delete file /input.txt
rmdir('docs'); % remove local directory docs
rmdir('/docs'); % remove directory /docs
</langsyntaxhighlight>
 
On Unix-Systems:
<langsyntaxhighlight lang="matlab">if system('rm input.txt') == 0
disp('input.txt removed')
end
Line 1,072:
if system('rmdir /docs') == 0
disp('/docs removed')
end</langsyntaxhighlight>
 
=={{header|MAXScript}}==
There's no way to delete folders in MAXScript
<langsyntaxhighlight lang="maxscript">-- Here
deleteFile "input.txt"
-- Root
deleteFile "\input.txt"</langsyntaxhighlight>
 
=={{header|Mercury}}==
<langsyntaxhighlight lang="mercury">:- module delete_file.
:- interface.
 
Line 1,095:
io.remove_file("/input.txt", _, !IO),
io.remove_file("docs", _, !IO),
io.remove_file("/docs", _, !IO).</langsyntaxhighlight>
 
=={{header|Nanoquery}}==
{{trans|Ursa}}
<langsyntaxhighlight Nanoquerylang="nanoquery">f = new(Nanoquery.IO.File)
f.delete("input.txt")
f.delete("docs")
f.delete("/input.txt")
f.delete("/docs")</langsyntaxhighlight>
 
=={{header|Nemerle}}==
<langsyntaxhighlight Nemerlelang="nemerle">using System;
using System.IO;
using System.Console;
Line 1,125:
when (Directory.Exists(@"\docs")) Directory.Delete(@"\docs");
}
}</langsyntaxhighlight>
 
=={{header|NetRexx}}==
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
options replace format comments java crossref symbols binary
 
Line 1,163:
 
return
</syntaxhighlight>
</lang>
 
=={{header|NewLISP}}==
<langsyntaxhighlight NewLISPlang="newlisp">(delete-file "input.txt")
(delete-file "/input.txt")
(remove-dir "docs")
(remove-dir "/docs")</langsyntaxhighlight>
 
=={{header|Nim}}==
<langsyntaxhighlight Nimlang="nim">import os
removeFile("input.txt")
removeFile("/input.txt")
removeDir("docs")
removeDir("/docs")</langsyntaxhighlight>
 
=={{header|Objeck}}==
<langsyntaxhighlight lang="objeck">
use IO;
 
Line 1,193:
}
}
</syntaxhighlight>
</lang>
 
=={{header|Objective-C}}==
 
<langsyntaxhighlight lang="objc">NSFileManager *fm = [NSFileManager defaultManager];
 
// Pre-OS X 10.5
Line 1,209:
[fm removeItemAtPath:@"/input.txt" error:NULL];
[fm removeItemAtPath:@"docs" error:NULL];
[fm removeItemAtPath:@"/docs" error:NULL];</langsyntaxhighlight>
 
=={{header|OCaml}}==
 
<langsyntaxhighlight lang="ocaml">Sys.remove "input.txt";;
Sys.remove "/input.txt";;</langsyntaxhighlight>
 
with the Unix library:
<langsyntaxhighlight lang="ocaml">#load "unix.cma";;
Unix.unlink "input.txt";;
Unix.unlink "/input.txt";;
Unix.rmdir "docs";;
Unix.rmdir "/docs";;</langsyntaxhighlight>
 
=={{header|ooRexx}}==
<langsyntaxhighlight lang="oorexx">/*REXX pgm deletes a file */
file= 'afile.txt' /*name of a file to be deleted.*/
res=sysFileDelete(file); Say file 'res='res
File= 'bfile.txt' /*name of a file to be deleted.*/
res=sysFileDelete(file); Say file 'res='res</langsyntaxhighlight>
{{out}}
<pre>afile.txt res=0
Line 1,234:
 
=={{header|Oz}}==
<langsyntaxhighlight lang="oz">for Dir in ["/" "./"] do
try {OS.unlink Dir#"output.txt"}
catch _ then {System.showInfo "File does not exist."} end
try {OS.rmDir Dir#"docs"}
catch _ then {System.showInfo "Directory does not exist."} end
end</langsyntaxhighlight>
 
=={{header|PARI/GP}}==
GP has no built-in facilities for deleting files, but can use a system call:
<langsyntaxhighlight lang="parigp">system("rm -rf docs");
system("rm input.txt");
system("rm -rf /docs");
system("rm /input.txt");</langsyntaxhighlight>
PARI, as usual, has access to all the standard [[#C|C]] methods.
 
Line 1,254:
=={{header|Perl}}==
 
<langsyntaxhighlight lang="perl">use File::Spec::Functions qw(catfile rootdir);
# here
unlink 'input.txt';
Line 1,260:
# root dir
unlink catfile rootdir, 'input.txt';
rmdir catfile rootdir, 'docs';</langsyntaxhighlight>
 
'''Without Perl Modules'''
Line 1,273:
 
=={{header|Phix}}==
<!--<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: #008080;">constant</span> <span style="color: #000000;">root</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()=</span><span style="color: #004600;">LINUX</span><span style="color: #0000FF;">?</span><span style="color: #008000;">"/"</span><span style="color: #0000FF;">:</span><span style="color: #008000;">"C:\\"</span><span style="color: #0000FF;">)</span>
Line 1,280:
<span style="color: #0000FF;">?</span><span style="color: #000000;">remove_directory</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"docs"</span><span style="color: #0000FF;">)</span>
<span style="color: #0000FF;">?</span><span style="color: #000000;">remove_directory</span><span style="color: #0000FF;">(</span><span style="color: #000000;">root</span><span style="color: #0000FF;">&</span><span style="color: #008000;">"docs"</span><span style="color: #0000FF;">)</span>
<!--</langsyntaxhighlight>-->
output is 0 0 0 0 or 1 1 1 1 or some combination thereof
 
=={{header|PHP}}==
<langsyntaxhighlight lang="php"><?php
unlink('input.txt');
unlink('/input.txt');
rmdir('docs');
rmdir('/docs');
?></langsyntaxhighlight>
 
=={{header|Picat}}==
{{works with|Picat}}
<syntaxhighlight lang="picat">
<lang Picat>
import os.
 
Line 1,306:
del(Arg)
end.
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,313:
 
=={{header|PicoLisp}}==
<langsyntaxhighlight PicoLisplang="picolisp">(call 'rm "input.txt")
(call 'rmdir "docs")
(call 'rm "/input.txt")
(call 'rmdir "/docs")</langsyntaxhighlight>
 
=={{header|Pike}}==
<langsyntaxhighlight lang="pike">int main(){
rm("input.txt");
rm("/input.txt");
rm("docs");
rm("/docs");
}</langsyntaxhighlight>
 
=={{header|PowerShell}}==
<langsyntaxhighlight lang="powershell"># possible aliases for Remove-Item: rm, del, ri
Remove-Item input.txt
Remove-Item \input.txt # file system root
 
Remove-Item -Recurse docs # recurse for deleting folders including content
Remove-Item -Recurse \docs</langsyntaxhighlight>
 
=={{header|ProDOS}}==
Because input.txt is located inside of "docs" this will delete it when it deletes "docs"
<syntaxhighlight lang ProDOS="prodos">deletedirectory docs</langsyntaxhighlight>
 
=={{header|PureBasic}}==
<langsyntaxhighlight PureBasiclang="purebasic">DeleteFile("input.txt")
DeleteDirectory("docs","") ; needs to delete all included files
DeleteFile("/input.txt")
DeleteDirectory("/docs","*.*") ; deletes all files according to a pattern
 
DeleteDirectory("/docs","",#PB_FileSystem_Recursive) ; deletes all files and directories recursive</langsyntaxhighlight>
 
=={{header|Python}}==
 
<langsyntaxhighlight lang="python">import os
# current directory
os.remove("output.txt")
Line 1,354:
# root directory
os.remove("/output.txt")
os.rmdir("/docs")</langsyntaxhighlight>
If you wanted to remove a directory and all its contents, recursively, you would do:
<langsyntaxhighlight lang="python">import shutil
shutil.rmtree("docs")</langsyntaxhighlight>
 
=={{header|R}}==
<langsyntaxhighlight Rlang="r">file.remove("input.txt")
file.remove("/input.txt")
 
Line 1,371:
# directories needs the recursive flag
unlink("docs", recursive = TRUE)
unlink("/docs", recursive = TRUE)</langsyntaxhighlight>
 
The function <tt>unlink</tt> allows wildcards (* and ?)
Line 1,377:
=={{header|Racket}}==
 
<syntaxhighlight lang="racket">
<lang Racket>
#lang racket
 
Line 1,395:
(delete-directory "docs")
(delete-directory/files "docs"))
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
<syntaxhighlight lang="raku" perl6line>unlink 'input.txt';
unlink '/input.txt';
rmdir 'docs';
rmdir '/docs';</langsyntaxhighlight>
 
=={{header|Raven}}==
 
<langsyntaxhighlight lang="raven">'input.txt' delete
'/input.txt' delete
'docs' rmdir
'/docs' rmdir</langsyntaxhighlight>
 
=={{header|REBOL}}==
<langsyntaxhighlight REBOLlang="rebol">; Local.
delete %input.txt
delete-dir %docs/
Line 1,418:
; Root.
delete %/input.txt
delete-dir %/docs/</langsyntaxhighlight>
 
=={{header|Retro}}==
<langsyntaxhighlight Retrolang="retro">'input.txt file:delete
'/input.txt file:delete</langsyntaxhighlight>
 
=={{header|REXX}}==
Note that this REXX program will work on the Next family of Microsoft Windows systems as well as DOS &nbsp; (both under Windows in a DOS-prompt window or stand-alone DOS).
<langsyntaxhighlight lang="rexx">/*REXX program deletes a file and a folder in the current directory and the root. */
trace off /*suppress REXX error messages from DOS*/
aFile= 'input.txt' /*name of a file to be deleted. */
Line 1,435:
if j==1 then 'CD \' /*make the current dir the root dir.*/
end /* [↑] just do CD \ command once.*/
/*stick a fork in it, we're all done. */</langsyntaxhighlight>
 
=={{header|Ring}}==
 
<langsyntaxhighlight lang="ring">
remove("output.txt")
system("rmdir docs")
</syntaxhighlight>
</lang>
 
=={{header|Ruby}}==
 
<langsyntaxhighlight lang="ruby">File.delete("output.txt", "/output.txt")
Dir.delete("docs")
Dir.delete("/docs")</langsyntaxhighlight>
 
=={{header|Run BASIC}}==
<langsyntaxhighlight lang="runbasic">'------ delete input.txt ----------------
kill "input.txt" ' this is where we are
kill "/input.txt" ' this is the root
Line 1,457:
' ---- delete directory docs ----------
result = rmdir("Docs") ' directory where we are
result = rmdir("/Docs") ' root directory</langsyntaxhighlight>
 
=={{header|Rust}}==
<langsyntaxhighlight lang="rust">use std::io::{self, Write};
use std::fs::{remove_file,remove_dir};
use std::path::Path;
Line 1,484:
let _ = writeln!(&mut io::stderr(), "{:?}", error);
process::exit(code)
}</langsyntaxhighlight>
 
=={{header|Scala}}==
{{libheader|Scala}}
<langsyntaxhighlight lang="scala">import java.util._
import java.io.File
 
Line 1,502:
test("directory", "docs")
test("directory", File.separatorChar + "docs" + File.separatorChar)
}</langsyntaxhighlight>
 
=={{header|Scheme}}==
{{works with|Scheme|R6RS}}[http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-10.html]
<syntaxhighlight lang ="scheme">(delete-file filename)</langsyntaxhighlight>
 
=={{header|Seed7}}==
The library [http://seed7.sourceforge.net/libraries/osfiles.htm osfiles.s7i] provides the functions [http://seed7.sourceforge.net/libraries/osfiles.htm#removeFile%28in_string%29 removeFile] and [http://seed7.sourceforge.net/libraries/osfiles.htm#removeTree%28in_string%29 removeTree]. RemoveFile removes a file of any type unless it is a directory that is not empty. RemoveTree remove a file of any type inclusive a directory tree. Note that removeFile and removeTree fail with the exception [http://seed7.sourceforge.net/manual/errors.htm#FILE_ERROR FILE_ERROR] when the file does not exist.
<langsyntaxhighlight lang="seed7">$ include "seed7_05.s7i";
include "osfiles.s7i";
 
Line 1,519:
removeTree("docs");
removeTree("/docs");
end func;</langsyntaxhighlight>
 
=={{header|SenseTalk}}==
<langsyntaxhighlight lang="sensetalk">// Delete locally (relative to "the folder")
delete file "input.txt"
delete folder "docs"
Line 1,529:
delete file "/input.txt"
delete folder "/docs"
</syntaxhighlight>
</lang>
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby"># here
%f'input.txt' -> delete;
%d'docs' -> delete;
Line 1,538:
# root dir
Dir.root + %f'input.txt' -> delete;
Dir.root + %d'docs' -> delete;</langsyntaxhighlight>
 
=={{header|Slate}}==
Line 1,544:
(It will succeed deleting the directory if it is empty)
 
<langsyntaxhighlight lang="slate">(File newNamed: 'input.txt') delete.
(File newNamed: '/input.txt') delete.
(Directory newNamed: 'docs') delete.
(Directory newNamed: '/docs') delete.</langsyntaxhighlight>
 
Also:
 
<langsyntaxhighlight lang="slate">
(Directory current / 'input.txt') delete.
(Directory root / 'input.txt') delete.</langsyntaxhighlight>
 
=={{header|Smalltalk}}==
Line 1,559:
(It will succeed deleting the directory if it is empty)
 
<langsyntaxhighlight lang="smalltalk">File remove: 'input.txt'.
File remove: 'docs'.
File remove: '/input.txt'.
File remove: '/docs'</langsyntaxhighlight>
 
=={{header|Standard ML}}==
 
<langsyntaxhighlight lang="sml">OS.FileSys.remove "input.txt";
OS.FileSys.remove "/input.txt";
OS.FileSys.rmDir "docs";
OS.FileSys.rmDir "/docs";</langsyntaxhighlight>
 
=={{header|Stata}}==
<langsyntaxhighlight lang="stata">erase input.txt
rmdir docs</langsyntaxhighlight>
 
=={{header|Tcl}}==
 
<langsyntaxhighlight lang="tcl">file delete input.txt /input.txt
 
# preserve directory if non-empty
Line 1,583:
 
# delete even if non-empty
file delete -force docs /docs</langsyntaxhighlight>
 
=={{header|Toka}}==
 
<langsyntaxhighlight lang="toka">needs shell
" docs" remove
" input.txt" remove</langsyntaxhighlight>
 
=={{header|TUSCRIPT}}==
<langsyntaxhighlight lang="tuscript">
$$ MODE TUSCRIPT
- delete file
Line 1,598:
- delete directory
SET status = DELETE ("docs",-std-)
</syntaxhighlight>
</lang>
 
=={{header|UNIX Shell}}==
<langsyntaxhighlight lang="bash">rm -rf docs
rm input.txt
rm -rf /docs
rm /input.txt</langsyntaxhighlight>
 
=={{header|Ursa}}==
<langsyntaxhighlight lang="ursa">decl file f
f.delete "input.txt"
f.delete "docs"
f.delete "/input.txt"
f.delete "/docs"</langsyntaxhighlight>
 
=={{header|VAX Assembly}}==
<langsyntaxhighlight VAXlang="vax Assemblyassembly">74 75 70 6E 69 20 65 74 65 6C 65 64 0000 1 dcl: .ascii "delete input.txt;,docs.dir;"
64 2E 73 63 6F 64 2C 3B 74 78 74 2E 000C
3B 72 69 0018
Line 1,633:
0071 12 .end main
 
</syntaxhighlight>
</lang>
 
=={{header|VBA}}==
<langsyntaxhighlight lang="vb">Option Explicit
 
Sub DeleteFileOrDirectory()
Line 1,645:
'delete Directory
RmDir myPath
End Sub</langsyntaxhighlight>
 
=={{header|VBScript}}==
<langsyntaxhighlight lang="vb">Set oFSO = CreateObject( "Scripting.FileSystemObject" )
 
oFSO.DeleteFile "input.txt"
Line 1,670:
fld.Delete
 
</syntaxhighlight>
</lang>
 
=={{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_Delete("input.txt", OK)
File_Rmdir("docs")
Line 1,680:
// In the root directory
File_Delete("/input.txt", OK)
File_Rmdir("/docs")</langsyntaxhighlight>
 
=={{header|Visual Basic .NET}}==
Line 1,686:
 
{{works with|Visual Basic .NET|9.0+}}
<langsyntaxhighlight lang="vbnet">'Current Directory
IO.Directory.Delete("docs")
IO.Directory.Delete("docs", True) 'also delete files and sub-directories
Line 1,697:
'Root, platform independent
IO.Directory.Delete(IO.Path.DirectorySeparatorChar & "docs")
IO.File.Delete(IO.Path.DirectorySeparatorChar & "output.txt")</langsyntaxhighlight>
 
=={{header|Wren}}==
Line 1,703:
 
Wren does not currently support the removal of directories.
<langsyntaxhighlight lang="ecmascript">import "io" for File
 
File.delete("input.txt")
 
// check it worked
System.print(File.exists("input.txt"))</langsyntaxhighlight>
 
{{out}}
Line 1,718:
{{works with|NASM|Linux}}
 
<langsyntaxhighlight lang="asm">
;syscall numbers for readability. :]
%define sys_rmdir 40
Line 1,764:
err_msg db "Something went wrong! :[",0xa
err_len equ $-err_msg
</syntaxhighlight>
</lang>
 
=={{header|Yorick}}==
Yorick does not have a built-in function to recursively delete a directory; the rmdir function only works on empty directories.
<langsyntaxhighlight lang="yorick">remove, "input.txt";
remove, "/input.txt";
rmdir, "docs";
rmdir, "/docs";</langsyntaxhighlight>
 
=={{header|zig}}==
 
<langsyntaxhighlight lang="zig">const std = @import("std");
const fs = std.fs;
 
Line 1,786:
try root.deleteFile("input.txt");
try root.deleteDir("docs");
}</langsyntaxhighlight>
 
=={{header|zkl}}==
zkl doesn't have built ins to delete files or directories but you can let a shell do it:
<langsyntaxhighlight lang="zkl">zkl: System.cmd((System.isWindows and "del" or "unlink") + " input.txt")
0
zkl: System.cmd((System.isWindows and "del" or "unlink") + " /input.txt")
Line 1,802:
zkl: System.cmd("rm -r /docs")
rm: cannot remove ‘/docs’: No such file or directory
256</langsyntaxhighlight>
 
{{omit from|Befunge}} <!-- No filesystem support -->
10,327

edits