File size: Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎[[Java]]: Use Java header instead)
m (Changed over to headers.)
Line 4: Line 4:
In this task, the job is to verify the size of a file called "input.txt" for a file in the current working directory and another one in the file system root.
In this task, the job is to verify the size of a file called "input.txt" for a file in the current working directory and another one in the file system root.


==[[Clean]]==
=={{header|Clean}}==
[[Category:Clean]]

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


Line 22: Line 20:
Start world = fileSize "input.txt" world
Start world = fileSize "input.txt" world


==[[Forth]]==
=={{header|Forth}}==
[[Category:Forth]]


: .filesize ( addr len -- ) 2dup type ." is "
: .filesize ( addr len -- ) 2dup type ." is "
Line 50: Line 47:
}
}


=={{header|MaxScript}}==
==[[MAXScript]]==
[[Category:MAXScript]]
-- Returns filesize in bytes or 0 if the file is missing
-- Returns filesize in bytes or 0 if the file is missing
getFileSize "index.txt"
getFileSize "index.txt"
getFileSize "\index.txt"
getFileSize "\index.txt"


==[[Perl]]==
=={{header|Perl}}==
[[Category:Perl]]
use File::Spec::Functions qw(catfile rootdir);
use File::Spec::Functions qw(catfile rootdir);
print -s 'input.txt';
print -s 'input.txt';
print -s catfile rootdir, 'input.txt';
print -s catfile rootdir, 'input.txt';


==[[Pop11]]==
=={{header|Pop11}}==
[[Category:Pop11]]


;;; prints file size in bytes
;;; prints file size in bytes
Line 75: Line 69:
'/input.txt' status.size
'/input.txt' status.size


==[[Toka]]==
=={{header|Toka}}==
[[Category:Toka]]
A trivial method follows:
A trivial method follows:


Line 93: Line 86:
" /input.txt" display-size
" /input.txt" display-size


==[[Visual Basic .NET]]==
=={{header|Visual Basic .NET}}==
[[Category:Visual Basic .NET]]


'''Platform:''' [[.NET]]
'''Platform:''' [[.NET]]

Revision as of 20:29, 12 November 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" for a file in the current working directory and another one in the file system root.

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

Forth

: .filesize ( addr len -- ) 2dup type ."  is "
  r/o open-file throw
  dup file-size throw  <# #s #> type ."  bytes long." cr
  close-file throw ;

 s" input.txt" .filesize
s" /input.txt" .filesize

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

MaxScript

-- Returns filesize in bytes or 0 if the file is missing
getFileSize "index.txt"
getFileSize "\index.txt"

Perl

use File::Spec::Functions qw(catfile rootdir);
print -s 'input.txt';
print -s catfile rootdir, 'input.txt';

Pop11

 ;;; prints file size in bytes
 sysfilesize('input.txt') =>
 sysfilesize('/input.txt') =>

Raven

'input.txt'  status.size
'/input.txt' status.size

Toka

A trivial method follows:

 " input.txt"  "R" file.open dup file.size . file.close
 " /input.txt" "R" file.open dup file.size . file.close

A better method would be to define a new function that actually checks whether the file exists:

 [ "R" file.open
   dup 0 <> [ dup file.size . file.close ] ifTrue
   drop
 ] is display-size
 
 " input.txt"  display-size
 " /input.txt" display-size

Visual Basic .NET

Platform: .NET

Language Version: 9.0+

Dim local As New IO.FileInfo("input.txt")
Console.WriteLine(local.Length)

Dim root As New IO.FileInfo("\input.txt")
Console.WriteLine(root.Length)