Delete a file

From Rosetta Code
Task
Delete a file
You are encouraged to solve this task according to the task description, using any language you may know.
This task has been flagged for clarification. Code on this page in its current state may be flagged incorrect once this task has been clarified. See this page's Talk page for discussion.


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


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);
   }
}

Perl

   sub deleteFile($) {
       my ($filename) = @_;
       return unlink($filename);
   }
   sub deleteDir($) {
       my ($filename) = @_;
       return rmdir($filename);
   }
   sub test($$) {
       my ($type, $filename) = @_;
       # Safety check:
       # unlink directory is DANGEROUS and unsupported unless root and -U.
       # See: http://perldoc.perl.org/functions/unlink.html
       if ($type eq "file" && -d $filename) { $type = "directory"; }
       #
       my $b = ($type eq "file") ? deleteFile($filename) : deleteDir($filename);
       print "The following " . $type . " called " . $filename .
           ($b ? " was deleted." : " could not be deleted.");
   }
   test("file", "input.txt");
   test("file", $FileSeperator . "input.txt");
   test("directory", "docs");
   test("directory", $FileSeperator . "docs" . $FileSeperator);

# Short version
unlink("input.txt");
unlink($FileSeperator . "input.txt");
rmdir("docs");
rmdir($FileSeperator . "docs" . $FileSeperator);