File Delete
From Rosetta Code
Programming Task
This is a programming task. It lays out a problem which Rosetta Code users are encouraged to solve, using languages they know.
In this task, the job is to delete a file called "input.txt" and delete a directory called "docs". This should be done twice: once "here", i.e. in the current working directory and once in the filesystem root.
Contents |
[edit] ALGOL 68
Note: scratch does not appear to do anything on ALGOL 68G. Also note that file names are Operating System dependent.
main:(
PROC remove = (STRING file name)INT:
BEGIN
FILE actual file;
INT errno = open(actual file, file name, stand back channel);
IF errno NE 0 THEN stop remove FI;
scratch(actual file); # detach the book and burn it #
errno
EXIT
stop remove:
errno
END;
remove("input.txt");
remove("/input.txt");
remove("docs");
remove("/docs")
)
[edit] C
ISO C:
#include <stdio.h> int main() { remove("input.txt"); remove("/input.txt"); remove("docs"); remove("/docs"); return 0; }
POSIX:
#include <unistd.h> int main() { unlink("input.txt"); unlink("/input.txt"); rmdir("docs"); rmdir("/docs"); return 0; }
[edit] D
Library: Tango
import tango.io.Path; void main() { remove("input.txt"); remove("/input.txt"); remove("docs"); remove("/docs"); }
Library: Tango
POSIX:
import tango.stdc.posix.unistd; void main() { unlink("input.txt"); unlink("/input.txt"); rmdir("docs"); rmdir("/docs"); }
[edit] Forth
There is no means to delete directories in ANS Forth.
s" input.txt" delete-file throw s" /input.txt" delete-file throw
[edit] Haskell
import System.IO import System.Directory main = do removeFile "output.txt" removeDirectory "docs" removeFile "/output.txt" removeDirectory "/docs"
[edit] Io
Directory fileNamed("input.txt") remove
Directory directoryNamed("docs") remove
RootDir := Directory clone setPath("/")
RootDir fileNamed("input.txt") remove
RootDir directoryNamed("docs") remove
[edit] Java
import java.util.File; public class FileDeleteTest { public static boolean deleteFile(String filename) { boolean exists = new File(filename).delete(); return exists; } public static void test(String type, String filename) { System.out.println("The following " + type + " called " + filename + (deleteFile(filename) ? " was deleted." : " could not be deleted.") ); } public static void main(String args[]) { test("file", "input.txt"); test("file", File.seperator + "input.txt"); test("directory", "docs"); test("directory", File.seperator + "docs" + File.seperator); } }
[edit] MAXScript
There's no way to delete folders in MAXScript
-- Here deleteFile "input.txt" -- Root deleteFile "\input.txt"
[edit] OCaml
Sys.remove "input.txt";; Sys.remove "/input.txt";;
with the Unix library:
#load "unix.cma";; Unix.unlink "input.txt";; Unix.unlink "/input.txt";; Unix.rmdir "docs";; Unix.rmdir "/docs";;
[edit] Perl
use File::Spec::Functions qw(catfile rootdir); # here unlink 'input.txt'; rmdir 'docs'; # root dir unlink catfile rootdir, 'input.txt'; rmdir catfile rootdir, 'docs';
Without Perl Modules
Current directory
perl -e 'unlink input.txt' perl -e 'rmdir docs'
Root Directory
perl -e 'unlink "/input.txt"' perl -e 'rmdir "/docs"'
[edit] PowerShell
Delete-Item input.txt
# Can also use the del alias for the Delete-Item cmdlet del input.txt
[edit] Python
import os # current directory os.remove("output.txt") os.rmdir("docs") # root directory os.remove("/output.txt") os.rmdir("/docs")
[edit] Raven
'input.txt' delete '/input.txt' delete 'docs' rmdir '/docs' rmdir
[edit] Ruby
#!/usr/bin/env ruby
File.delete("output.txt", "/output.txt")
Dir.delete("docs")
Dir.delete("/docs")
[edit] Toka
needs shell " docs" remove " input.txt" remove
[edit] UNIX Shell
rm -rf docs rm input.txt rm -rf /docs rm /input.txt
[edit] Visual Basic .NET
Platform: .NET
Works with: Visual Basic .NET version 9.0+
'Current Directory
IO.Directory.Delete("docs")
IO.Directory.Delete("docs", True) 'also delete files and sub-directories
IO.File.Delete("output.txt")
'Root
IO.Directory.Delete("\docs")
IO.File.Delete("\output.txt")
'Root, platform independent
IO.Directory.Delete(IO.Path.DirectorySeparatorChar & "docs")
IO.File.Delete(IO.Path.DirectorySeparatorChar & "output.txt")
Categories: Less Than 20 Examples | Programming Tasks | File System Operations | ALGOL 68 | C | D | Tango | Forth | Haskell | Io | Java | MAXScript | OCaml | Perl | PowerShell | Python | Raven | Ruby | Toka | UNIX Shell | Visual Basic .NET

