Create a file: Difference between revisions

From Rosetta Code
Content added Content deleted
(Add perl)
Line 39: Line 39:
my ($filename) = @_;
my ($filename) = @_;
if(-e $filename) { return " already exists."; }
if(-e $filename) { return " already exists."; }

open(FH, ">> ". $filename) or return " could not be created.";
open(FH, ">> ". $filename) or return " could not be created.";
close(FH);
close(FH);

return " did not exist and was created successfully.";
return " did not exist and was created successfully.";
}
}
Line 48: Line 46:
my ($filename) = @_;
my ($filename) = @_;
if(-e $filename) { return " already exists."; }
if(-e $filename) { return " already exists."; }
mkdir($filename) or return " could not be created.";
mkdir($filename) or return " could not be created.";

return " did not exist and was created successfully.";
return " did not exist and was created successfully.";
}
}
Line 66: Line 62:


# Short version;
# Short version;
my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
open(FH, ">> output.txt") and close(FH);
open(FH, ">> output.txt") and close(FH);
open(FH, ">> ".$FileSeperator."output.txt") and close(FH);
open(FH, ">> ".$FileSeperator."output.txt") and close(FH);

Revision as of 16:04, 7 April 2007

Task
Create a file
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 create a new empty file called "output.txt" with no content and of size 0 byte and an empty directory called "docs". Assuming current directory or fullpath. Either "/output.txt" or "\output.txt" for the former and "/docs/" or "\docs\" for the second test.

Java

import java.util.File;
public class CreateFileTest {
   public static String createNewFile(String filename) {
       try {
           // Create file if it does not exist
           boolean success = new File(filename).createNewFile();
           if (success) {
               return " did not exist and was created successfully.";
           } else {
               return " already exists.";
           }
       } catch (IOException e) {
               return " could not be created.";
       }
   }
   public static void test(String type, String filename) {
       System.out.println("The following " + type + " called " + filename + 
           createNewFile(filename)
       );
   }
   public static void main(String args[]) {
        test("file", "output.txt");
        test("file", File.seperator + "output.txt");
        test("directory", "docs");
        test("directory", File.seperator + "docs" + File.seperator);
   }
}

Perl

  sub createNewFile($) {
      my ($filename) = @_;
      if(-e $filename) { return " already exists."; }
      open(FH, ">> ". $filename) or return " could not be created.";
      close(FH);
      return " did not exist and was created successfully.";
  }
  sub createNewDir($) {
      my ($filename) = @_;
      if(-e $filename) { return " already exists."; }
      mkdir($filename) or return " could not be created.";
      return " did not exist and was created successfully.";
  } 
  sub test($$) {
      my ($type, $filename) = @_;
      print "The following " . $type . " called " . $filename . 
          ($type eq "file") ? createNewFile($filename) : createNewDir($filename);
  }
  my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
  test("file", "output.txt");
  test("file", $FileSeperator . "output.txt");
  test("directory", "docs");
  test("directory", $FileSeperator . "docs" . $FileSeperator);
  exit;
  # Short version;
  my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
  open(FH, ">> output.txt") and close(FH);
  open(FH, ">> ".$FileSeperator."output.txt") and close(FH);
  mkdir("docs");
  mkdir($FileSeperator."docs".$FileSeperator);

Bash

 touch output.txt
 touch /output.txt
 mkdir docs
 mkdir /docs

DOS

 md docs
 md \docs