File size: Difference between revisions

From Rosetta Code
Content added Content deleted
(Added Clean example)
Line 3: Line 3:
In this task, the job is to verify the size of a file called "input.txt". Assuming current directory or fullpath. Either "/input.txt" or "\input.txt".
In this task, the job is to verify the size of a file called "input.txt". Assuming current directory or fullpath. Either "/input.txt" or "\input.txt".


==[[Clean]]==
[[Category:Clean]]

There is not function to get the file size, therefore we seek to the end and query the file pointer position.

import StdEnv
fileSize fileName world
# (ok, file, world) = fopen fileName FReadData world
| not ok = abort "Cannot open file"
# (ok, file) = fseek file 0 FSeekEnd
| not ok = abort "Cannot seek file"
# (size, file) = fposition file
(_, world) = fclose file world
= (size, world)
Start world = fileSize "input.txt" world


==[[Java]]==
==[[Java]]==

Revision as of 10:35, 13 April 2007

Task
File size
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 verify the size of a file called "input.txt". Assuming current directory or fullpath. Either "/input.txt" or "\input.txt".

Clean

There is not function to get the file size, therefore we seek to the end and query the file pointer position.

import StdEnv

fileSize fileName world
    # (ok, file, world) = fopen fileName FReadData world
    | not ok = abort "Cannot open file"
    # (ok, file) = fseek file 0 FSeekEnd
    | not ok = abort "Cannot seek file"
    # (size, file) = fposition file
      (_, world) = fclose file world
    = (size, world)

Start world = fileSize "input.txt" world

Java

import java.util.File;
public class FileSizeTest {
   public static long getFileSize(String filename) {
       return new File(filename).length();
   }
   public static void test(String type, String filename) {
       System.out.println("The following " + type + " called " + filename + 
           " has a file size of " + getFileSize(filename) + " bytes."
       );
   }
   public static void main(String args[]) {
        test("file", "input.txt");
        test("file", File.seperator + "input.txt");
   }
}

Perl

   #!/usr/bin/perl
   sub getFileSize($) {
       my ($filename) = @_;
       return -s $filename;
   }
   sub test($$) {
       my ($type, $filename) = @_;
       print "The following ". $type ." called " . $filename . 
           " has a file size of " . getFileSize($filename) . " bytes.";
   }
   my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
   test("file", "input.txt");
   test("file", $FileSeperator . "input.txt");
   exit;
 
   # Short version
   my $FileSeperator = ($^O eq "MSWin32") ? "\\" : "/";
   print -s 'input.txt';
   print -s $FileSeperator . 'input.txt';