File size: Difference between revisions
Content added Content deleted
(Ada implementation assuming 8 bit characters.) |
m (→{{header|Visual Basic .NET}}: Changed over to works with template) |
||
Line 126: | Line 126: | ||
'''Platform:''' [[.NET]] |
'''Platform:''' [[.NET]] |
||
{{works with|Visual Basic .NET|9.0+}} |
|||
'''Language Version:''' 9.0+ |
|||
Dim local As New IO.FileInfo("input.txt") |
Dim local As New IO.FileInfo("input.txt") |
||
Console.WriteLine(local.Length) |
Console.WriteLine(local.Length) |
Revision as of 02:44, 19 February 2008
File size
You are encouraged to solve this task according to the task description, using any language you may know.
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.
Ada
with Ada.Text_Io; with Ada.Direct_Io; procedure Size is function File_Size (Name : String) return Natural is package Char_Io is new Ada.Direct_Io(Character); use Char_Io; The_File : Char_Io.File_Type; The_Size : Natural; begin Char_Io.Open(File => The_File, Name => Name, Mode => In_File); The_Size := Natural(Size(The_File)); Close(The_File); return The_Size; end File_Size; Name_1 : String := "input.txt"; Name_2 : String := "/input.txt"; begin Ada.Text_Io.Put_Line(Name_1 & " contains" & Integer'Image(File_Size(Name_1)) & " characters"); Ada.Text_Io.Put_Line(Name_2 & " contains" & Integer'Image(File_Size(Name_2)) & " characters"); end Size;
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
Factor
"input.txt" file-length . 1321 "file-does-not-exist.txt" file-length . f
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') =>
Python
import os size = os.path.getsize('input.txt') size = os.path.getsize('/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
Dim local As New IO.FileInfo("input.txt") Console.WriteLine(local.Length) Dim root As New IO.FileInfo("\input.txt") Console.WriteLine(root.Length)