Jump to content

File size: Difference between revisions

m
syntax highlighting fixup automation
m (syntax highlighting fixup automation)
Line 5:
 
=={{header|11l}}==
<langsyntaxhighlight lang="11l">V size1 = fs:file_size(‘input.txt’)
V size2 = fs:file_size(‘/input.txt’)</langsyntaxhighlight>
 
=={{header|8086 Assembly}}==
Line 12:
This program runs under MS-DOS.
 
<langsyntaxhighlight lang="asm">putch: equ 2 ; Print character
puts: equ 9 ; Print $-terminated string
setdta: equ 1Ah ; Set DTA
Line 79:
colspc: db ': $' ; Colon and space
section .bss
dta: resb 512 ; Disc transfer area</langsyntaxhighlight>
 
{{out}}
Line 109:
DOS 2.5 returns file size in number of sectors. It is required to read the whole file to calculate its size in bytes.
{{libheader|Action! Tool Kit}}
<langsyntaxhighlight Actionlang="action!">INCLUDE "D2:IO.ACT" ;from the Action! Tool Kit
 
PROC Dir(CHAR ARRAY filter)
Line 155:
size=FileSize(fname)
PrintF("Size of ""%S"" is %U bytes%E",fname,size)
RETURN</langsyntaxhighlight>
{{out}}
<pre>
Line 169:
The '''Sparta DOS X''' system stores the size of the file in the directory. The readout of the values is performed with the XIO 39 operation. In the ICAX3, ICAX4, ICAX5 registers values are returned in 24-byte format. Calculation according to the formula: ICAX3 + ICAX4 * 256 + ICAX5 * 65536.
{{libheader|Action! Tool Kit}}
<langsyntaxhighlight Actionlang="action!">INCLUDE"REAL.ACT" ;from the Action! Tool Kit
 
proc MAIN()
Line 183:
print("Size of REAL.ACT is ") printRD(DEVICE,FLEN) printe(" bytes")
return
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 190:
 
=={{header|Ada}}==
<langsyntaxhighlight lang="ada">with Ada.Directories; use Ada.Directories;
with Ada.Text_IO; use Ada.Text_IO;
 
Line 197:
Put_Line (File_Size'Image (Size ("input.txt")) & " bytes");
Put_Line (File_Size'Image (Size ("/input.txt")) & " bytes");
end Test_File_Size;</langsyntaxhighlight>
Note that reference to the root directory, if there is any, is [[OS]] specific.
 
=={{header|Aime}}==
<langsyntaxhighlight lang="aime">o_(stat("input.txt", ST_SIZE), "\n");
o_("/Cygwin.ico".stat(ST_SIZE), "\n");</langsyntaxhighlight>
 
=={{header|ALGOL 68}}==
Line 208:
special channel, e.g. a tape device.
 
Conceptually the procedure <langsyntaxhighlight lang="algol68">PROC set = (REF FILE file, INT page, line, character)VOID: ~ </langsyntaxhighlight>
could be used to do a binary search find the last page's page number. And if it is known
that every page has the same number of lines, and every line has the same number of '''char'''[s],
Line 219:
=={{header|Arturo}}==
 
<langsyntaxhighlight lang="rebol">print volume "input.txt"
print volume "/input.txt"</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
<langsyntaxhighlight AutoHotkeylang="autohotkey">FileGetSize, FileSize, input.txt ; Retrieve the size in bytes.
MsgBox, Size of input.txt is %FileSize% bytes
FileGetSize, FileSize, \input.txt, K ; Retrieve the size in Kbytes.
MsgBox, Size of \input.txt is %FileSize% Kbytes</langsyntaxhighlight>
 
=={{header|AWK}}==
{{works with|gawk}}
<langsyntaxhighlight lang="awk">@load "filefuncs"
function filesize(name ,fd) {
if ( stat(name, fd) == -1)
Line 240:
print filesize("input.txt")
print filesize("/input.txt")
}</langsyntaxhighlight>
 
Some awk's don't have direct access to the filesystem, but can execute system-commands like dir (DOS/Windows) and ls
 
<langsyntaxhighlight lang="awk">BEGIN {
 
# Windows
Line 281:
close(command)
return ship
}</langsyntaxhighlight>
 
 
Line 287:
 
=={{header|Axe}}==
<langsyntaxhighlight lang="axe">If GetCalc("appvINPUT")→I
Disp {I-2}ʳ▶Dec,i
Else
Disp "NOT FOUND",i
End</langsyntaxhighlight>
 
=={{header|BaCon}}==
<langsyntaxhighlight lang="freebasic">' file size
' Return the entire message, FILELEN returns a NUMBER
FUNCTION printlen$(STRING name$)
Line 305:
 
PRINT printlen$("input.txt")
PRINT printlen$("/input.txt")</langsyntaxhighlight>
 
{{out}}
Line 320:
=={{header|Batch File}}==
Outputs file size of the first parameter (you can drag and drop a file in aswell).
<langsyntaxhighlight lang="dos">
@echo off
if not exist "%~1" exit /b 1 & rem If file doesn't exist exit with error code of 1.
for /f %%i in (%~1) do echo %~zi
pause>nul
</syntaxhighlight>
</lang>
 
=={{header|BBC BASIC}}==
<langsyntaxhighlight lang="bbcbasic"> file% = OPENIN(@dir$+"input.txt")
IF file% THEN
PRINT "File size = " ; EXT#file%
Line 338:
PRINT "File size = " ; EXT#file%
CLOSE #file%
ENDIF</langsyntaxhighlight>
 
=={{header|Bracmat}}==
This solution assumes that the file can be opened for reading. The <code>fil</code> function is the Bracmat interface to the underlying C functions <code>fopen, fclose, fseek, ftell, fread, fgetc, fwrite, fputc</code> and <code>feof</code>. More than one file can be opened at the same time. Focus is shifted from one open file to another by mentioning the file name as the first argument.
 
<langsyntaxhighlight lang="bracmat">(getFileSize=
size
. fil$(!arg,rb) {read in binary mode}
Line 357:
getFileSize$"c:\\boot.ini"
211
</syntaxhighlight>
</lang>
 
=={{header|C}}==
<langsyntaxhighlight lang="c">#include <stdlib.h>
#include <stdio.h>
 
Line 378:
printf("%ld\n", getFileSize("/input.txt"));
return 0;
}</langsyntaxhighlight>
 
{{works with|POSIX}}
<langsyntaxhighlight lang="c">#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
Line 393:
printf("%ld\n", foo.st_size);
return 0;
}</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
 
<langsyntaxhighlight lang="csharp">using System;
using System.IO;
 
Line 408:
}
}
</syntaxhighlight>
</lang>
 
=={{header|C++}}==
<langsyntaxhighlight lang="cpp">#include <iostream>
#include <fstream>
 
Line 426:
std::cout << getFileSize("/input.txt") << std::endl;
return 0;
}</langsyntaxhighlight>
 
'''optimized '''
<langsyntaxhighlight lang="cpp">#include <iostream>
#include <fstream>
 
Line 436:
std::cout << std::ifstream("input.txt", std::ios::binary | std::ios::ate).tellg() << "\n"
<< std::ifstream("/input.txt", std::ios::binary | std::ios::ate).tellg() << "\n";
}</langsyntaxhighlight>
 
===C++ 17===
<langsyntaxhighlight lang="cpp">#include <filesystem>
#include <iostream>
 
Line 454:
print_file_size("input.txt");
print_file_size("/input.txt");
}</langsyntaxhighlight>
 
{{out}}
Line 465:
There is not function to get the file size, therefore we seek to the end and query the file pointer position.
 
<langsyntaxhighlight lang="clean">import StdEnv
 
fileSize fileName world
Line 476:
= (size, world)
 
Start world = fileSize "input.txt" world</langsyntaxhighlight>
 
=={{header|Clojure}}==
<langsyntaxhighlight lang="clojure">(require '[clojure.java.io :as io])
(defn show-size [filename]
(println filename "size:" (.length (io/file filename))))
 
(show-size "input.txt")
(show-size "/input.txt")</langsyntaxhighlight>
 
=={{header|COBOL}}==
<syntaxhighlight lang="cobol">
<lang Cobol>
identification division.
program-id. FileInfo.
Line 530:
end-if
.
</syntaxhighlight>
</lang>
 
=={{header|ColdFusion}}==
<langsyntaxhighlight ColdFusionlang="coldfusion"><cfscript>
localFile = getFileInfo(expandpath("input.txt"));
rootFile = getFileInfo("/input.txt");
Line 541:
Size of input.txt is #localFile.size# bytes.
Size of /input.txt is #rootFile.size# bytes.
</cfoutput></langsyntaxhighlight>
 
=={{header|Common Lisp}}==
<langsyntaxhighlight lang="lisp">(with-open-file (stream (make-pathname :name "input.txt")
:direction :input
:if-does-not-exist nil)
Line 552:
:direction :input
:if-does-not-exist nil)
(print (if stream (file-length stream) 0)))</langsyntaxhighlight>
 
(osicat-posix:stat-size (osicat-posix:stat #P"input.txt"))
 
=={{header|D}}==
<langsyntaxhighlight lang="d">import std.file, std.stdio, std.path, std.file, std.stream,
std.mmfile;
 
Line 578:
e.msg.writefln;
}
}</langsyntaxhighlight>
{{out}}
<pre>File 'file_size.exe' has size:
Line 586:
 
=={{header|Delphi}}==
<langsyntaxhighlight Delphilang="delphi">program SizeOfFile;
 
{$APPTYPE CONSOLE}
Line 606:
Writeln('input.txt ', CheckFileSize('input.txt'));
Writeln('\input.txt ', CheckFileSize('\input.txt'));
end.</langsyntaxhighlight>
 
=={{header|E}}==
 
<langsyntaxhighlight lang="e">for file in [<file:input.txt>, <file:///input.txt>] {
println(`The size of $file is ${file.length()} bytes.`)
}</langsyntaxhighlight>
 
=={{header|Eiffel}}==
 
<langsyntaxhighlight lang="eiffel">
class
APPLICATION
Line 638:
environment:EXECUTION_ENVIRONMENT
end
</syntaxhighlight>
</lang>
 
=={{header|Elena}}==
ELENA 4.x :
<langsyntaxhighlight lang="elena">import system'io;
import extensions;
Line 650:
console.printLine(File.assign("\input.txt").Length)
}</langsyntaxhighlight>
 
=={{header|Elixir}}==
<langsyntaxhighlight lang="elixir">IO.puts File.stat!("input.txt").size
IO.puts File.stat!("/input.txt").size</langsyntaxhighlight>
 
=={{header|Emacs Lisp}}==
Line 660:
<code>file-attributes</code> returns <code>nil</code> in that case.
 
<langsyntaxhighlight Lisplang="lisp">(message "sizes are %s and %s"
(nth 7 (file-attributes "input.txt"))
(nth 7 (file-attributes "/input.txt")))</langsyntaxhighlight>
 
=={{header|Erlang}}==
 
<langsyntaxhighlight lang="erlang">-module(file_size).
-export([file_size/0]).
 
Line 682:
io:format("~s could not be opened~n",[Filename])
end.
</syntaxhighlight>
</lang>
 
=={{header|Euphoria}}==
<langsyntaxhighlight lang="euphoria">include file.e
 
function file_size(sequence file_name)
Line 708:
 
test("input.txt") -- in the current working directory
test("/input.txt") -- in the file system root</langsyntaxhighlight>
 
=={{header|F_Sharp|F#}}==
 
<langsyntaxhighlight lang="fsharp">open NUnit.Framework
open FsUnit
 
Line 719:
let local = System.IO.FileInfo(__SOURCE_DIRECTORY__ + "\input.txt")
let root = System.IO.FileInfo(System.IO.Directory.GetDirectoryRoot(__SOURCE_DIRECTORY__) + "input.txt")
local.Length = root.Length |> should be True</langsyntaxhighlight>
 
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">"input.txt" file-info size>> .
1321
"file-does-not-exist.txt" file-info size>>
"Unix system call ``stat'' failed:"...</langsyntaxhighlight>
 
=={{header|FBSL}}==
FileLen returns -1 if the file is not found. FileLen will also accept a file handle and give the file length of the open file.
<langsyntaxhighlight lang="qbasic">#APPTYPE CONSOLE
 
print FileLen("sync.log")
print FileLen("\sync.log")
PAUSE
</syntaxhighlight>
</lang>
 
=={{header|Forth}}==
 
<langsyntaxhighlight lang="forth">: .filesize ( addr len -- ) 2dup type ." is "
r/o open-file throw
dup file-size throw <# #s #> type ." bytes long." cr
Line 744:
 
s" input.txt" .filesize
s" /input.txt" .filesize</langsyntaxhighlight>
 
=={{header|Fortran}}==
Line 750:
Since Fortran 95 the size of standard external files may be determined simply by using INQUIRE(SIZE=...).
The following previous example pertains to FORTRAN 77 and is now superceded.
<syntaxhighlight lang="fortran">
<lang Fortran>
 
use :: iso_fortran_env, only : FILE_STORAGE_SIZE
Line 761:
enddo
end
</langsyntaxhighlight>
 
The original example, now obsolete ...
Line 773:
But if one wrote Fortran on a B6700 system, its F77 compiler offered additional attributes that could be returned via an INQUIRE statement: MAXRECSIZE really was the length of the longest record in the disc file (whether fixed record lengths or variable record lengths), BLOCKSIZE reported the number of records per block of disc space, AREASIZE the size of a disc space allocation area, and AREAS their number, while KIND reveals the code number of the type of file (not via a .txt suffix or whatever). Armed with these values, the file size could be determined in bits, bytes, words (six characters/word), records, blocks and areas.
 
These facilities were not carried forward into standardised Fortran 90, etc. So, one is stuck with devising a routine that reads all the records of a disc file, counting their length. This is straightforward, but tedious, as in the following fragment:<langsyntaxhighlight Fortranlang="fortran"> 20 READ (INF,21, END = 30) L !R E A D A R E C O R D - but only its length.
21 FORMAT(Q) !This obviously indicates the record's length.
NRECS = NRECS + 1 !CALL LONGCOUNT(NRECS,1) !C O U N T A R E C O R D.
Line 784:
RMAXR = NRECS !Where it's at.
END IF !So much for the lengths.
GO TO 20 !All I wanted to know...</langsyntaxhighlight>
The LONGCOUNT routine uses two 32-bit integers (the first parameter being a two-element array) to deliver a much larger capacity, given modern file size opportunities, but this is unnecessary if INTEGER*8 variables are available. The count will not include any contribution from record splitters such as CR, etc. A file more properly thought of as containing binary data (say, integer or floating-point values) will by chance have a CR or LF bit pattern here and there, and they will be taken as marking record splits when reading a file as being FORMATTED, which is the default setting.
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">' FB 1.05.0 Win64
 
#include "file.bi"
 
Print FileLen("input.txt"), FileLen(Environ("SystemRoot") + "\input.txt")
Sleep</langsyntaxhighlight>
 
=={{header|Frink}}==
<langsyntaxhighlight lang="frink">println[newJava["java.io.File", "input.txt"].length[]]
println[newJava["java.io.File", "/input.txt"].length[]]</langsyntaxhighlight>
 
=={{header|Gambas}}==
<langsyntaxhighlight lang="gambas">Public Sub Main()
Dim stInfo As Stat = Stat(User.home &/ "input.txt")
Dim stInfo1 As Stat = Stat("/input.txt")
Line 807:
Print "/input.txt = " & stInfo1.Size & " bytes"
 
End</langsyntaxhighlight>
Output:
<pre>
Line 815:
 
=={{header|Go}}==
<langsyntaxhighlight lang="go">package main
 
import "fmt"
Line 831:
printFileSize("input.txt")
printFileSize("/input.txt")
}</langsyntaxhighlight>
 
=={{header|Groovy}}==
<langsyntaxhighlight lang="groovy">println new File('index.txt').length();
println new File('/index.txt').length();</langsyntaxhighlight>
 
=={{header|Haskell}}==
 
<langsyntaxhighlight lang="haskell">import System.IO
 
printFileSize filename = withFile filename ReadMode hFileSize >>= print
 
main = mapM_ printFileSize ["input.txt", "/input.txt"]</langsyntaxhighlight>
or
<langsyntaxhighlight lang="haskell">import System.Posix.File
 
printFileSize filename = do stat <- getFileStatus filename
print (fileSize stat)
 
main = mapM_ printFileSize ["input.txt", "/input.txt"]</langsyntaxhighlight>
 
=={{header|HicEst}}==
<langsyntaxhighlight lang="hicest">READ(FILE="input.txt", LENgth=bytes) ! bytes = -1 if not existent
READ(FILE="C:\input.txt", LENgth=bytes) ! bytes = -1 if not existent </langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
Icon doesn't support 'stat'; however, information can be obtained by use of the system function to access command line.
<langsyntaxhighlight Uniconlang="unicon">every dir := !["./","/"] do {
write("Size of ",f := dir || "input.txt"," = ",stat(f).size) |stop("failure for to stat ",f)
}</langsyntaxhighlight>
Note: Icon and Unicon accept both / and \ for directory separators.
 
=={{header|J}}==
<langsyntaxhighlight Jlang="j">require 'files'
fsize 'input.txt';'/input.txt'</langsyntaxhighlight>
 
=={{header|Java}}==
<langsyntaxhighlight lang="java">import java.io.File;
 
public class FileSize
Line 878:
}
}
</syntaxhighlight>
</lang>
 
=={{header|JavaScript}}==
{{works with|JScript}}
<langsyntaxhighlight lang="javascript">var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.GetFile('input.txt').Size;
fso.GetFile('c:/input.txt').Size;</langsyntaxhighlight>
 
The following works in all browsers, including IE10.
<langsyntaxhighlight lang="javascript">var file = document.getElementById("fileInput").files.item(0); //a file input element
if (file) {
var reader = new FileReader();
Line 900:
function errorHandler(event) {
alert(event);
}</langsyntaxhighlight>
 
=={{header|jq}}==
<langsyntaxhighlight lang="sh">jq -Rs length input.txt
 
jq -Rs length /input.txt</langsyntaxhighlight>
 
The -R option causes the file to be read as text, and the -s option causes it to be read as a single string.
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">println(filesize("input.txt"))
println(filesize("/input.txt"))</langsyntaxhighlight>
 
=={{header|K}}==
<langsyntaxhighlight Klang="k">_size "input.txt"
_size "/input.txt"</langsyntaxhighlight>
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang="scala">// version 1.0.6
 
import java.io.File
Line 926:
for (path in paths)
println("Length of $path is ${File(path).length()} bytes")
}</langsyntaxhighlight>
 
=={{header|Lasso}}==
<langsyntaxhighlight Lassolang="lasso">// local to current directory
local(f = file('input.txt'))
handle => { #f->close }
Line 938:
handle => { #f->close }
#f->size
</syntaxhighlight>
</lang>
 
=={{header|Liberty BASIC}}==
<langsyntaxhighlight lang="lb">'input.txt in current directory
OPEN DefaultDir$ + "/input.txt" FOR input AS #m
PRINT "File size: "; lof(#m)
Line 949:
OPEN "c:/input.txt" FOR input AS #m
PRINT "File size: "; lof(#m)
CLOSE #m</langsyntaxhighlight>
 
=={{header|Lingo}}==
<langsyntaxhighlight lang="lingo">----------------------------------------
-- Returns file size
-- @param {string} filename
Line 964:
fp.closeFile()
return len
end</langsyntaxhighlight>
 
=={{header|LiveCode}}==
<langsyntaxhighlight LiveCodelang="livecode">// root folder
set the defaultfolder to "/"
repeat for each line fline in (the detailed files)
Line 986:
exit repeat
end if
end repeat</langsyntaxhighlight>
 
=={{header|Lua}}==
<langsyntaxhighlight Lualang="lua">function GetFileSize( filename )
local fp = io.open( filename )
if fp == nil then
Line 997:
fp:close()
return filesize
end</langsyntaxhighlight>
 
=={{header|Maple}}==
<langsyntaxhighlight Maplelang="maple">FileTools:-Size( "input.txt" )</langsyntaxhighlight>
<langsyntaxhighlight Maplelang="maple">FileTools:-Size( "/input.txt" )</langsyntaxhighlight>
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<syntaxhighlight lang="mathematica">
<lang Mathematica>
FileByteCount["input.txt"]
FileByteCount[FileNameJoin[{$RootDirectory, "input.txt"}]]</langsyntaxhighlight>
 
=={{header|MATLAB}} / {{header|Octave}}==
<langsyntaxhighlight lang="matlab">d1 = dir('input.txt');
d2 = dir('/input.txt');
fprintf('Size of input.txt is %d bytes\n', d1.bytes)
fprintf('Size of /input.txt is %d bytes\n', d2.bytes)</langsyntaxhighlight>
 
=={{header|MAXScript}}==
<langsyntaxhighlight lang="maxscript">-- Returns filesize in bytes or 0 if the file is missing
getFileSize "index.txt"
getFileSize "\index.txt"</langsyntaxhighlight>
 
=={{header|Mirah}}==
<langsyntaxhighlight lang="mirah">import java.io.File
 
puts File.new('file-size.mirah').length()
puts File.new("./#{File.separator}file-size.mirah").length()</langsyntaxhighlight>
 
=={{header|mIRC Scripting Language}}==
<langsyntaxhighlight lang="mirc">echo -ag $file(input.txt).size bytes
echo -ag $file(C:\input.txt).size bytes</langsyntaxhighlight>
 
=={{header|Modula-3}}==
<langsyntaxhighlight lang="modula3">MODULE FSize EXPORTS Main;
 
IMPORT IO, Fmt, FS, File, OSError;
Line 1,045:
| OSError.E => IO.Put("ERROR: Could not get file status.\n");
END;
END FSize.</langsyntaxhighlight>
 
=={{header|Nanoquery}}==
<langsyntaxhighlight Nanoquerylang="nanoquery">import Nanoquery.IO
println new(File, "input.txt").length()
println new(File, "/input.txt").length()</langsyntaxhighlight>
 
=={{header|NetRexx}}==
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
options replace format comments java symbols binary
 
Line 1,086:
end
 
return</langsyntaxhighlight>
{{out}}
<pre>
Line 1,103:
 
=={{header|NewLISP}}==
<langsyntaxhighlight NewLISPlang="newlisp">(println (first (file-info "input.txt")))
(println (first (file-info "/input.txt")))</langsyntaxhighlight>
 
=={{header|Nim}}==
<langsyntaxhighlight lang="nim">import os
echo getFileSize "input.txt"
echo getFileSize "/input.txt"</langsyntaxhighlight>
 
=={{header|Objeck}}==
<langsyntaxhighlight lang="objeck">
use IO;
...
File("input.txt")->Size()->PrintLine();
File("c:\input.txt")->Size()->PrintLine();
</syntaxhighlight>
</lang>
 
=={{header|Objective-C}}==
 
<langsyntaxhighlight lang="objc">NSFileManager *fm = [NSFileManager defaultManager];
 
// Pre-OS X 10.5
Line 1,127:
 
// OS X 10.5+
NSLog(@"%llu", [[fm attributesOfItemAtPath:@"input.txt" error:NULL] fileSize]);</langsyntaxhighlight>
 
=={{header|OCaml}}==
 
<langsyntaxhighlight lang="ocaml">let printFileSize filename =
let ic = open_in filename in
Printf.printf "%d\n" (in_channel_length ic);
Line 1,137:
 
printFileSize "input.txt" ;;
printFileSize "/input.txt" ;;</langsyntaxhighlight>
 
For files greater than Pervasives.max_int, one can use the module [http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.LargeFile.html Pervasives.LargeFile]:
<langsyntaxhighlight lang="ocaml">let printLargeFileSize filename =
let ic = open_in filename in
Printf.printf "%Ld\n" (LargeFile.in_channel_length ic);
close_in ic ;;</langsyntaxhighlight>
 
Alternatively:
<langsyntaxhighlight lang="ocaml">#load "unix.cma" ;;
open Unix ;;
Printf.printf "%d\n" (stat "input.txt").st_size ;;
Printf.printf "%d\n" (stat "/input.txt").st_size ;;</langsyntaxhighlight>
 
The module Unix has also a [http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.LargeFile.html LargeFile sub-module].
Line 1,155:
=={{header|Oforth}}==
 
<langsyntaxhighlight Oforthlang="oforth">File new("input.txt") size println
File new("/input.txt") size println</langsyntaxhighlight>
 
=={{header|ooRexx}}==
<langsyntaxhighlight lang="oorexx">Parse Version v
Say v
fid='test.txt'
Line 1,171:
Say length(s)
Say 'file' fid
'type' fid</langsyntaxhighlight>
{{out}}
<pre>J:\>rexx sft
Line 1,185:
 
=={{header|Oz}}==
<langsyntaxhighlight lang="oz">declare
[Path] = {Module.link ['x-oz://system/os/Path.ozf']}
in
{Show {Path.size "input.txt"}}
{Show {Path.size "/input.txt"}}</langsyntaxhighlight>
 
=={{header|Pascal}}==
Line 1,196:
=={{header|Perl}}==
 
<langsyntaxhighlight lang="perl">my $size1 = -s 'input.txt';
my $size2 = -s '/input.txt';</langsyntaxhighlight>
 
Or, to be 100% cross-platform:
<langsyntaxhighlight lang="perl">use File::Spec::Functions qw(catfile rootdir);
my $size1 = -s 'input.txt';
my $size2 = -s catfile rootdir, 'input.txt';</langsyntaxhighlight>
 
Alternative way to get the size:
<langsyntaxhighlight lang="perl">my $size1 = (stat 'input.txt')[7]; # builtin stat() returns an array with file size at index 7
my $size2 = (stat '/input.txt')[7];</langsyntaxhighlight>
 
=={{header|Phix}}==
{{libheader|Phix/basics}}
<!--<langsyntaxhighlight Phixlang="phix">-->
<span style="color: #008080;">function</span> <span style="color: #000000;">file_size<span style="color: #0000FF;">(<span style="color: #004080;">sequence</span> <span style="color: #000000;">file_name<span style="color: #0000FF;">)</span>
<span style="color: #004080;">object</span> <span style="color: #000000;">d</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">dir<span style="color: #0000FF;">(<span style="color: #000000;">file_name<span style="color: #0000FF;">)</span>
Line 1,228:
<span style="color: #000000;">test<span style="color: #0000FF;">(<span style="color: #008000;">"input.txt"<span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- in the current working directory</span>
<span style="color: #000000;">test<span style="color: #0000FF;">(<span style="color: #008000;">"/input.txt"<span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- in the file system root
<!--</langsyntaxhighlight>-->
 
=={{header|PHP}}==
<langsyntaxhighlight lang="php"><?php
echo filesize('input.txt'), "\n";
echo filesize('/input.txt'), "\n";
?></langsyntaxhighlight>
 
=={{header|PicoLisp}}==
<langsyntaxhighlight PicoLisplang="picolisp">(println (car (info "input.txt")))
(println (car (info "/input.txt")))</langsyntaxhighlight>
 
=={{header|Pike}}==
<langsyntaxhighlight lang="pike">import Stdio;
int main(){
write(file_size("input.txt") + "\n");
write(file_size("/input.txt") + "\n");
}</langsyntaxhighlight>
 
=={{header|PL/I}}==
<syntaxhighlight lang="pl/i">
<lang PL/I>
/* To obtain file size of files in root as well as from current directory. */
 
Line 1,276:
put skip list ('local file size=' || trim(i));
end test;
</syntaxhighlight>
</lang>
<pre>
I used differently-named files to prove that local and root directory
Line 1,285:
=={{header|Pop11}}==
 
<langsyntaxhighlight lang="pop11">;;; prints file size in bytes
sysfilesize('input.txt') =>
sysfilesize('/input.txt') =></langsyntaxhighlight>
 
=={{header|PostScript}}==
<code>status</code> returns status information about a file if given a file name. This includes the size in pages (implementation-dependent), the size in bytes, creation and modification time and a final <code>true</code>. The values not needed here are simply <code>pop</code>ed off the stack.
<langsyntaxhighlight lang="postscript">(input.txt ) print
(input.txt) status pop pop pop = pop
(/input.txt ) print
(/input.txt) status pop pop pop = pop</langsyntaxhighlight>
 
=={{header|PowerShell}}==
<langsyntaxhighlight lang="powershell">Get-ChildItem input.txt | Select-Object Name,Length
Get-ChildItem \input.txt | Select-Object Name,Length</langsyntaxhighlight>
 
=={{header|PureBasic}}==
<langsyntaxhighlight lang="purebasic">Debug FileSize("input.txt")
Debug FileSize("/input.txt")</langsyntaxhighlight>
 
=={{header|Python}}==
 
<langsyntaxhighlight lang="python">import os
 
size = os.path.getsize('input.txt')
size = os.path.getsize('/input.txt')</langsyntaxhighlight>
 
=={{header|R}}==
Line 1,316:
R has a function file.info() in the base package that performs this function. Note that regardless of the OS, R uses forward slashes for the directories.
 
<langsyntaxhighlight Rlang="r">sizeinwd <- file.info('input.txt')[["size"]]
sizeinroot <- file.info('/input.txt')[["size"]]</langsyntaxhighlight>
 
=={{header|Racket}}==
<langsyntaxhighlight Racketlang="racket">#lang racket
(file-size "input.txt")
(file-size "/input.txt")</langsyntaxhighlight>
 
=={{header|Raku}}==
(formerly Perl 6)
{{works with|Rakudo|2015.12}}
<syntaxhighlight lang="raku" perl6line>say 'input.txt'.IO.s;
say '/input.txt'.IO.s;</langsyntaxhighlight>
 
Cross-platform version of the second one:
<syntaxhighlight lang="raku" perl6line>say $*SPEC.rootdir.IO.child("input.txt").s;</langsyntaxhighlight>
 
=={{header|RapidQ}}==
Line 1,338:
Method 1: display file size using file streams
 
<langsyntaxhighlight lang="rapidq">$INCLUDE "rapidq.inc"
 
DIM file AS QFileStream
Line 1,349:
 
PRINT "Size of input.txt is "; fileSize("input.txt")
PRINT "Size of \input.txt is "; fileSize("\input.txt")</langsyntaxhighlight>
 
Method 2: using DIR$
 
<langsyntaxhighlight lang="rapidq">FileName$ = DIR$("input.txt", 0)
PRINT "Size of input.txt is "; FileRec.Size
FileName$ = DIR$("\input.txt", 0)
PRINT "Size of \input.txt is "; FileRec.Size</langsyntaxhighlight>
 
=={{header|Raven}}==
<langsyntaxhighlight lang="raven">'input.txt' status.size
'/input.txt' status.size</langsyntaxhighlight>
 
=={{header|REBOL}}==
<langsyntaxhighlight REBOLlang="rebol">size? %info.txt
size? %/info.txt
size? ftp://username:password@ftp.site.com/info.txt
size? http://rosettacode.org</langsyntaxhighlight>
 
=={{header|Red}}==
<langsyntaxhighlight Redlang="red">>> size? %input.txt
== 39244
>> size? %/c/input.txt
== 39244</langsyntaxhighlight>
 
=={{header|Retro}}==
The simple way is to open and read the size. This may crash if the file does not exist.
 
<langsyntaxhighlight Retrolang="retro">with files'
"input.txt" :R open &size sip close drop putn
"/input.txt" :R open &size sip close drop putn</langsyntaxhighlight>
 
For added stability, check that the returned file handle is not zero:
 
<langsyntaxhighlight Retrolang="retro">with files'
"input.txt" :R open over 0 <> [ &size sip close drop ] ifTrue</langsyntaxhighlight>
 
Or, if you need to do this more often, setup a function that'll also display an error message if the file does not exist:
 
<langsyntaxhighlight Retrolang="retro">with files'
: getFileSize ( $-n )
:R open 0 over =
Line 1,395:
 
"input.txt" getFileSize putn
"/input.txt" getFileSize putn</langsyntaxhighlight>
 
=={{header|REXX}}==
Line 1,405:
 
Note that some operating systems don't have a concept of a &nbsp; ''current directory'' &nbsp; or a &nbsp; ''file system root''.
<langsyntaxhighlight lang="rexx">/*REXX program determines a file's size (by reading all the data) in current dir & root.*/
parse arg iFID . /*allow the user specify the file ID. */
if iFID=='' | iFID=="," then iFID='input.txt' /*Not specified? Then use the default.*/
Line 1,414:
fSize: parse arg f; $=0; do while chars(f)\==0; $ = $ + length( charin( f, , 1e4) )
end /*while*/; call lineout f /*close file.*/
return $</langsyntaxhighlight>
{{out|output|text=&nbsp; when using the default input:}}
<pre>
Line 1,422:
 
===MS DOS version 2===
<langsyntaxhighlight lang="rexx">/*REXX pgm to verify a file's size */
parse arg iFID . /*let user specify the file ID. */
if iFID=='' then iFID="FILESIZ.DAT" /*Not specified? Then use default*/
Line 1,437:
sz=sz+length(linein(f))
End
return sz</langsyntaxhighlight>
{{out}}
<pre>size of FILESIZ.DAT:
Line 1,446:
Note that CMS hasn't a concept of a ''root''.
<br>Also note that the CMS system doesn't normally support the use of periods ('''.'''); &nbsp; it uses blanks instead.
<langsyntaxhighlight lang="rexx">/*REXX program determines a file's size (by reading all the data) on the default mDisk.*/
parse arg iFID /*allow the user specify the file ID. */
if iFID=='' | iFID=="," then iFID= 'INPUT TXT' /*Not specified? Then use the default.*/
Line 1,454:
fSize: parse arg f; $= 0; do while lines(f)\==0; $= $ + length( linein(f) )
end /*while*/
return $</langsyntaxhighlight><br>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">See len(read('input.txt')) + nl
see len(read('/input.txt')) + nl</langsyntaxhighlight>
 
=={{header|Ruby}}==
<langsyntaxhighlight lang="ruby">size = File.size('input.txt')
size = File.size('/input.txt')</langsyntaxhighlight>
 
=={{header|Run BASIC}}==
<langsyntaxhighlight lang="runbasic">print fileSize(DefaultDir$,"input.txt") ' current default directory
print fileSize("","input.txt") ' root directory
 
Line 1,472:
fileSize = lof(#f) ' Length Of File
close #f
end function</langsyntaxhighlight>
 
=={{header|Rust}}==
<langsyntaxhighlight lang="rust">use std::{env, fs, process};
use std::io::{self, Write};
use std::fmt::Display;
Line 1,492:
}
 
}</langsyntaxhighlight>
 
=={{header|Scala}}==
{{libheader|Scala}}
<langsyntaxhighlight Scalalang="scala">import java.io.File
 
object FileSize extends App {
Line 1,503:
println(s"$name : ${new File(name).length()} bytes")
println(s"/$name : ${new File(s"${File.separator}$name").length()} bytes")
}</langsyntaxhighlight>
 
=={{header|Scheme}}==
<langsyntaxhighlight lang="scheme">
(define (file-size filename)
(call-with-input-file filename (lambda (port)
Line 1,517:
(file-size "input.txt")
(file-size "/input.txt")
</syntaxhighlight>
</lang>
 
=={{header|Seed7}}==
<langsyntaxhighlight lang="seed7">$ include "seed7_05.s7i";
 
const proc: main is func
Line 1,526:
writeln(fileSize("input.txt"));
writeln(fileSize("/input.txt"));
end func;</langsyntaxhighlight>
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby">say (Dir.cwd + %f'input.txt' -> size);
say (Dir.root + %f'input.txt' -> size);</langsyntaxhighlight>
 
=={{header|Slate}}==
<langsyntaxhighlight lang="slate">(File newNamed: 'input.txt') fileInfo fileSize.
(File newNamed: '/input.txt') fileInfo fileSize.</langsyntaxhighlight>
 
=={{header|Smalltalk}}==
{{works with|GNU Smalltalk}}
<langsyntaxhighlight lang="smalltalk">(File name: 'input.txt') size printNl.
(File name: '/input.txt') size printNl.</langsyntaxhighlight>
{{works with|Smalltalk/X}}
{{works with|VisualWorks Smalltalk}}
<langsyntaxhighlight lang="smalltalk">'input.txt' asFilename fileSize
'/input.txt' asFilename fileSize</langsyntaxhighlight>
 
=={{header|Standard ML}}==
 
<langsyntaxhighlight lang="sml">val size = OS.FileSys.fileSize "input.txt" ;;
val size = OS.FileSys.fileSize "/input.txt" ;</langsyntaxhighlight>
 
=={{header|Stata}}==
Line 1,554:
To get the size in byte of an arbitrary file, use [http://www.stata.com/help.cgi?file file seek]. Just replace input.txt with \input.txt if the file resides in the root directory of the current disk.
 
<langsyntaxhighlight lang="stata">file open f using input.txt, read binary
file seek f eof
file seek f query
display r(loc)
file close f</langsyntaxhighlight>
 
However, what is usually interesting is the size of a datatset. Use [http://www.stata.com/help.cgi?describe describe], either on the currently loaded dataset, or on a dataset on disk. The describe command will print the file size, but it's possible to use [http://www.stata.com/help.cgi?stored_results stored results] as well.
 
<langsyntaxhighlight lang="stata">describe using test.dta
display r(N)*r(width)</langsyntaxhighlight>
 
=={{header|Tcl}}==
<langsyntaxhighlight lang="tcl">file size input.txt
file size /input.txt</langsyntaxhighlight>
 
=={{header|Toka}}==
A trivial method follows:
 
<langsyntaxhighlight lang="toka">" input.txt" "R" file.open dup file.size . file.close
" /input.txt" "R" file.open dup file.size . file.close</langsyntaxhighlight>
 
A better method would be to define a new function that actually
checks whether the file exists:
 
<langsyntaxhighlight lang="toka">[ "R" file.open
dup 0 <> [ dup file.size . file.close ] ifTrue
drop
Line 1,584:
 
" input.txt" display-size
" /input.txt" display-size</langsyntaxhighlight>
 
=={{header|TorqueScript}}==
Line 1,592:
TGE Version (Works with all versions containing the basic file i/o):
{{works with|TGE}}
<langsyntaxhighlight Torquelang="torque">%File = new FileObject();
%File.openForRead("input.txt");
 
Line 1,601:
 
%File.close();
%File.delete();</langsyntaxhighlight>
<br />
T3D Version (Only works with T3D):
{{works with|T3D}}
<langsyntaxhighlight Torquelang="torque">fileSize("input.txt");</langsyntaxhighlight>
 
=={{header|TUSCRIPT}}==
<langsyntaxhighlight lang="tuscript">
$$ MODE TUSCRIPT
-- size of file input.txt
Line 1,620:
file_size=BYTES (file)
ERROR/STOP CLOSE (file)
</syntaxhighlight>
</lang>
 
=={{header|UNIX Shell}}==
Line 1,628:
''ls'' most likely gets the length from the file's inode.
 
<langsyntaxhighlight lang="bash">size1=$(ls -l input.txt | tr -s ' ' | cut -d ' ' -f 5)
size2=$(ls -l /input.txt | tr -s ' ' | cut -d ' ' -f 5)</langsyntaxhighlight>
 
''ls -l'' reports the size in 5th field, with spaces between fields.
Line 1,635:
and ''cut'' extracts 5th field.
 
<langsyntaxhighlight lang="bash">
echo "# ls:"
ls -la input.txt
Line 1,646:
size2=$(wc -c < input.txt | tr -d ' ')
echo $size1, $size2
</syntaxhighlight>
</lang>
{{Out}} Test run at compileonline.com:
<pre>
Line 1,666:
''wc'' may actually read the whole file and count the bytes. Some implementations, like [http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/wc.c wc.c] from GNU coreutils, can optimize ''wc -c'' by getting the length from the file's inode.
 
<langsyntaxhighlight lang="bash">size1=$(wc -c < input.txt | tr -d ' ')
size2=$(wc -c < /input.txt | tr -d ' ')</langsyntaxhighlight>
 
The peculiar use of ''wc -c < file'', not ''wc -c file'', is to prevent printing the file's name. Then ''wc'' only reports the size. Some versions of ''wc'' print spaces before the number; ''tr'' deletes all these spaces.
Line 1,678:
{{works with|OpenBSD|3.8}}
 
<langsyntaxhighlight lang="bash">size1=$(stat -f %z input.txt)
size2=$(stat -f %z /input.txt)</langsyntaxhighlight>
 
===Z Shell===
{{works with|zsh}}
 
<langsyntaxhighlight lang="bash"># from module 'zsh/stat', load builtin 'zstat'
zmodload -F zsh/stat b:zstat
 
size1=$(zstat +size input.txt)
size2=$(zstat +size /input.txt)</langsyntaxhighlight>
 
=={{header|Ursa}}==
<langsyntaxhighlight lang="ursa">decl file f
 
f.open "input.txt"
Line 1,699:
f.open "/input.txt"
out (size f) endl console
f.close</langsyntaxhighlight>
 
=={{header|VBScript}}==
{{works with|Windows Script Host|*}}
<syntaxhighlight lang="vbscript">
<lang VBScript>
With CreateObject("Scripting.FileSystemObject")
WScript.Echo .GetFile("input.txt").Size
WScript.Echo .GetFile("\input.txt").Size
End With
</syntaxhighlight>
</lang>
 
=={{header|Vedit macro language}}==
<langsyntaxhighlight lang="vedit">Num_Type(File_Size("input.txt"))
Num_Type(File_Size("/input.txt"))</langsyntaxhighlight>
 
=={{header|Visual Basic}}==
{{works with|Visual Basic|6}}
<langsyntaxhighlight lang="vb">Option Explicit
 
----
Line 1,741:
DisplayFileSize Environ$("SystemRoot"), "input.txt"
End Sub
</syntaxhighlight>
</lang>
{{out}}
<pre>file size: 37 Bytes
Line 1,752:
 
{{works with|Visual Basic .NET|9.0+}}
<langsyntaxhighlight lang="vbnet">Dim local As New IO.FileInfo("input.txt")
Console.WriteLine(local.Length)
 
Dim root As New IO.FileInfo("\input.txt")
Console.WriteLine(root.Length)</langsyntaxhighlight>
 
=={{header|Wren}}==
Line 1,762:
 
To check the size of a file in the root, just change "input.txt" to "/input.txt" in the following script.
<langsyntaxhighlight lang="ecmascript">import "io" for File
 
var name = "input.txt"
System.print("'%(name)' has a a size of %(File.size(name)) bytes")</langsyntaxhighlight>
 
{{out}}
Line 1,773:
 
=={{header|X86 Assembly}}==
<langsyntaxhighlight lang="x86asm">
; x86_64 linux nasm
 
Line 1,842:
mov rdi, 1
syscall
</syntaxhighlight>
</lang>
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">proc ShowSize(FileName);
char FileName; int Size, C;
[Trap(false); \disable abort on error
Line 1,859:
[ShowSize("input.txt");
ShowSize("/input.txt"); \root under Linux
]</langsyntaxhighlight>
 
=={{header|zkl}}==
<langsyntaxhighlight lang="zkl">File.info("input.txt").println();
File.info("/input.txt").println();</langsyntaxhighlight>
-->T(size,creation time,last mod time,isDir,mode), from stat(2)
{{out}}
10,327

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.