File size: Difference between revisions

Content added Content deleted
m (syntax highlighting fixup automation)
Line 5: Line 5:


=={{header|11l}}==
=={{header|11l}}==
<lang 11l>V size1 = fs:file_size(‘input.txt’)
<syntaxhighlight lang="11l">V size1 = fs:file_size(‘input.txt’)
V size2 = fs:file_size(‘/input.txt’)</lang>
V size2 = fs:file_size(‘/input.txt’)</syntaxhighlight>


=={{header|8086 Assembly}}==
=={{header|8086 Assembly}}==
Line 12: Line 12:
This program runs under MS-DOS.
This program runs under MS-DOS.


<lang asm>putch: equ 2 ; Print character
<syntaxhighlight lang="asm">putch: equ 2 ; Print character
puts: equ 9 ; Print $-terminated string
puts: equ 9 ; Print $-terminated string
setdta: equ 1Ah ; Set DTA
setdta: equ 1Ah ; Set DTA
Line 79: Line 79:
colspc: db ': $' ; Colon and space
colspc: db ': $' ; Colon and space
section .bss
section .bss
dta: resb 512 ; Disc transfer area</lang>
dta: resb 512 ; Disc transfer area</syntaxhighlight>


{{out}}
{{out}}
Line 109: 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.
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}}
{{libheader|Action! Tool Kit}}
<lang Action!>INCLUDE "D2:IO.ACT" ;from the Action! Tool Kit
<syntaxhighlight lang="action!">INCLUDE "D2:IO.ACT" ;from the Action! Tool Kit


PROC Dir(CHAR ARRAY filter)
PROC Dir(CHAR ARRAY filter)
Line 155: Line 155:
size=FileSize(fname)
size=FileSize(fname)
PrintF("Size of ""%S"" is %U bytes%E",fname,size)
PrintF("Size of ""%S"" is %U bytes%E",fname,size)
RETURN</lang>
RETURN</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 169: 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.
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}}
{{libheader|Action! Tool Kit}}
<lang Action!>INCLUDE"REAL.ACT" ;from the Action! Tool Kit
<syntaxhighlight lang="action!">INCLUDE"REAL.ACT" ;from the Action! Tool Kit


proc MAIN()
proc MAIN()
Line 183: Line 183:
print("Size of REAL.ACT is ") printRD(DEVICE,FLEN) printe(" bytes")
print("Size of REAL.ACT is ") printRD(DEVICE,FLEN) printe(" bytes")
return
return
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 190: Line 190:


=={{header|Ada}}==
=={{header|Ada}}==
<lang ada>with Ada.Directories; use Ada.Directories;
<syntaxhighlight lang="ada">with Ada.Directories; use Ada.Directories;
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Text_IO; use Ada.Text_IO;


Line 197: Line 197:
Put_Line (File_Size'Image (Size ("input.txt")) & " bytes");
Put_Line (File_Size'Image (Size ("input.txt")) & " bytes");
Put_Line (File_Size'Image (Size ("/input.txt")) & " bytes");
Put_Line (File_Size'Image (Size ("/input.txt")) & " bytes");
end Test_File_Size;</lang>
end Test_File_Size;</syntaxhighlight>
Note that reference to the root directory, if there is any, is [[OS]] specific.
Note that reference to the root directory, if there is any, is [[OS]] specific.


=={{header|Aime}}==
=={{header|Aime}}==
<lang aime>o_(stat("input.txt", ST_SIZE), "\n");
<syntaxhighlight lang="aime">o_(stat("input.txt", ST_SIZE), "\n");
o_("/Cygwin.ico".stat(ST_SIZE), "\n");</lang>
o_("/Cygwin.ico".stat(ST_SIZE), "\n");</syntaxhighlight>


=={{header|ALGOL 68}}==
=={{header|ALGOL 68}}==
Line 208: Line 208:
special channel, e.g. a tape device.
special channel, e.g. a tape device.


Conceptually the procedure <lang algol68>PROC set = (REF FILE file, INT page, line, character)VOID: ~ </lang>
Conceptually the procedure <syntaxhighlight lang="algol68">PROC set = (REF FILE file, INT page, line, character)VOID: ~ </syntaxhighlight>
could be used to do a binary search find the last page's page number. And if it is known
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],
that every page has the same number of lines, and every line has the same number of '''char'''[s],
Line 219: Line 219:
=={{header|Arturo}}==
=={{header|Arturo}}==


<lang rebol>print volume "input.txt"
<syntaxhighlight lang="rebol">print volume "input.txt"
print volume "/input.txt"</lang>
print volume "/input.txt"</syntaxhighlight>


=={{header|AutoHotkey}}==
=={{header|AutoHotkey}}==
<lang AutoHotkey>FileGetSize, FileSize, input.txt ; Retrieve the size in bytes.
<syntaxhighlight lang="autohotkey">FileGetSize, FileSize, input.txt ; Retrieve the size in bytes.
MsgBox, Size of input.txt is %FileSize% bytes
MsgBox, Size of input.txt is %FileSize% bytes
FileGetSize, FileSize, \input.txt, K ; Retrieve the size in Kbytes.
FileGetSize, FileSize, \input.txt, K ; Retrieve the size in Kbytes.
MsgBox, Size of \input.txt is %FileSize% Kbytes</lang>
MsgBox, Size of \input.txt is %FileSize% Kbytes</syntaxhighlight>


=={{header|AWK}}==
=={{header|AWK}}==
{{works with|gawk}}
{{works with|gawk}}
<lang awk>@load "filefuncs"
<syntaxhighlight lang="awk">@load "filefuncs"
function filesize(name ,fd) {
function filesize(name ,fd) {
if ( stat(name, fd) == -1)
if ( stat(name, fd) == -1)
Line 240: Line 240:
print filesize("input.txt")
print filesize("input.txt")
print filesize("/input.txt")
print filesize("/input.txt")
}</lang>
}</syntaxhighlight>


Some awk's don't have direct access to the filesystem, but can execute system-commands like dir (DOS/Windows) and ls
Some awk's don't have direct access to the filesystem, but can execute system-commands like dir (DOS/Windows) and ls


<lang awk>BEGIN {
<syntaxhighlight lang="awk">BEGIN {


# Windows
# Windows
Line 281: Line 281:
close(command)
close(command)
return ship
return ship
}</lang>
}</syntaxhighlight>




Line 287: Line 287:


=={{header|Axe}}==
=={{header|Axe}}==
<lang axe>If GetCalc("appvINPUT")→I
<syntaxhighlight lang="axe">If GetCalc("appvINPUT")→I
Disp {I-2}ʳ▶Dec,i
Disp {I-2}ʳ▶Dec,i
Else
Else
Disp "NOT FOUND",i
Disp "NOT FOUND",i
End</lang>
End</syntaxhighlight>


=={{header|BaCon}}==
=={{header|BaCon}}==
<lang freebasic>' file size
<syntaxhighlight lang="freebasic">' file size
' Return the entire message, FILELEN returns a NUMBER
' Return the entire message, FILELEN returns a NUMBER
FUNCTION printlen$(STRING name$)
FUNCTION printlen$(STRING name$)
Line 305: Line 305:


PRINT printlen$("input.txt")
PRINT printlen$("input.txt")
PRINT printlen$("/input.txt")</lang>
PRINT printlen$("/input.txt")</syntaxhighlight>


{{out}}
{{out}}
Line 320: Line 320:
=={{header|Batch File}}==
=={{header|Batch File}}==
Outputs file size of the first parameter (you can drag and drop a file in aswell).
Outputs file size of the first parameter (you can drag and drop a file in aswell).
<lang dos>
<syntaxhighlight lang="dos">
@echo off
@echo off
if not exist "%~1" exit /b 1 & rem If file doesn't exist exit with error code of 1.
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
for /f %%i in (%~1) do echo %~zi
pause>nul
pause>nul
</syntaxhighlight>
</lang>


=={{header|BBC BASIC}}==
=={{header|BBC BASIC}}==
<lang bbcbasic> file% = OPENIN(@dir$+"input.txt")
<syntaxhighlight lang="bbcbasic"> file% = OPENIN(@dir$+"input.txt")
IF file% THEN
IF file% THEN
PRINT "File size = " ; EXT#file%
PRINT "File size = " ; EXT#file%
Line 338: Line 338:
PRINT "File size = " ; EXT#file%
PRINT "File size = " ; EXT#file%
CLOSE #file%
CLOSE #file%
ENDIF</lang>
ENDIF</syntaxhighlight>


=={{header|Bracmat}}==
=={{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.
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.


<lang bracmat>(getFileSize=
<syntaxhighlight lang="bracmat">(getFileSize=
size
size
. fil$(!arg,rb) {read in binary mode}
. fil$(!arg,rb) {read in binary mode}
Line 357: Line 357:
getFileSize$"c:\\boot.ini"
getFileSize$"c:\\boot.ini"
211
211
</syntaxhighlight>
</lang>


=={{header|C}}==
=={{header|C}}==
<lang c>#include <stdlib.h>
<syntaxhighlight lang="c">#include <stdlib.h>
#include <stdio.h>
#include <stdio.h>


Line 378: Line 378:
printf("%ld\n", getFileSize("/input.txt"));
printf("%ld\n", getFileSize("/input.txt"));
return 0;
return 0;
}</lang>
}</syntaxhighlight>


{{works with|POSIX}}
{{works with|POSIX}}
<lang c>#include <stdlib.h>
<syntaxhighlight lang="c">#include <stdlib.h>
#include <stdio.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/stat.h>
Line 393: Line 393:
printf("%ld\n", foo.st_size);
printf("%ld\n", foo.st_size);
return 0;
return 0;
}</lang>
}</syntaxhighlight>


=={{header|C sharp|C#}}==
=={{header|C sharp|C#}}==


<lang csharp>using System;
<syntaxhighlight lang="csharp">using System;
using System.IO;
using System.IO;


Line 408: Line 408:
}
}
}
}
</syntaxhighlight>
</lang>


=={{header|C++}}==
=={{header|C++}}==
<lang cpp>#include <iostream>
<syntaxhighlight lang="cpp">#include <iostream>
#include <fstream>
#include <fstream>


Line 426: Line 426:
std::cout << getFileSize("/input.txt") << std::endl;
std::cout << getFileSize("/input.txt") << std::endl;
return 0;
return 0;
}</lang>
}</syntaxhighlight>


'''optimized '''
'''optimized '''
<lang cpp>#include <iostream>
<syntaxhighlight lang="cpp">#include <iostream>
#include <fstream>
#include <fstream>


Line 436: Line 436:
std::cout << std::ifstream("input.txt", std::ios::binary | std::ios::ate).tellg() << "\n"
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";
<< std::ifstream("/input.txt", std::ios::binary | std::ios::ate).tellg() << "\n";
}</lang>
}</syntaxhighlight>


===C++ 17===
===C++ 17===
<lang cpp>#include <filesystem>
<syntaxhighlight lang="cpp">#include <filesystem>
#include <iostream>
#include <iostream>


Line 454: Line 454:
print_file_size("input.txt");
print_file_size("input.txt");
print_file_size("/input.txt");
print_file_size("/input.txt");
}</lang>
}</syntaxhighlight>


{{out}}
{{out}}
Line 465: Line 465:
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.


<lang clean>import StdEnv
<syntaxhighlight lang="clean">import StdEnv


fileSize fileName world
fileSize fileName world
Line 476: Line 476:
= (size, world)
= (size, world)


Start world = fileSize "input.txt" world</lang>
Start world = fileSize "input.txt" world</syntaxhighlight>


=={{header|Clojure}}==
=={{header|Clojure}}==
<lang clojure>(require '[clojure.java.io :as io])
<syntaxhighlight lang="clojure">(require '[clojure.java.io :as io])
(defn show-size [filename]
(defn show-size [filename]
(println filename "size:" (.length (io/file filename))))
(println filename "size:" (.length (io/file filename))))


(show-size "input.txt")
(show-size "input.txt")
(show-size "/input.txt")</lang>
(show-size "/input.txt")</syntaxhighlight>


=={{header|COBOL}}==
=={{header|COBOL}}==
<syntaxhighlight lang="cobol">
<lang Cobol>
identification division.
identification division.
program-id. FileInfo.
program-id. FileInfo.
Line 530: Line 530:
end-if
end-if
.
.
</syntaxhighlight>
</lang>


=={{header|ColdFusion}}==
=={{header|ColdFusion}}==
<lang ColdFusion><cfscript>
<syntaxhighlight lang="coldfusion"><cfscript>
localFile = getFileInfo(expandpath("input.txt"));
localFile = getFileInfo(expandpath("input.txt"));
rootFile = getFileInfo("/input.txt");
rootFile = getFileInfo("/input.txt");
Line 541: Line 541:
Size of input.txt is #localFile.size# bytes.
Size of input.txt is #localFile.size# bytes.
Size of /input.txt is #rootFile.size# bytes.
Size of /input.txt is #rootFile.size# bytes.
</cfoutput></lang>
</cfoutput></syntaxhighlight>


=={{header|Common Lisp}}==
=={{header|Common Lisp}}==
<lang lisp>(with-open-file (stream (make-pathname :name "input.txt")
<syntaxhighlight lang="lisp">(with-open-file (stream (make-pathname :name "input.txt")
:direction :input
:direction :input
:if-does-not-exist nil)
:if-does-not-exist nil)
Line 552: Line 552:
:direction :input
:direction :input
:if-does-not-exist nil)
:if-does-not-exist nil)
(print (if stream (file-length stream) 0)))</lang>
(print (if stream (file-length stream) 0)))</syntaxhighlight>


(osicat-posix:stat-size (osicat-posix:stat #P"input.txt"))
(osicat-posix:stat-size (osicat-posix:stat #P"input.txt"))


=={{header|D}}==
=={{header|D}}==
<lang d>import std.file, std.stdio, std.path, std.file, std.stream,
<syntaxhighlight lang="d">import std.file, std.stdio, std.path, std.file, std.stream,
std.mmfile;
std.mmfile;


Line 578: Line 578:
e.msg.writefln;
e.msg.writefln;
}
}
}</lang>
}</syntaxhighlight>
{{out}}
{{out}}
<pre>File 'file_size.exe' has size:
<pre>File 'file_size.exe' has size:
Line 586: Line 586:


=={{header|Delphi}}==
=={{header|Delphi}}==
<lang Delphi>program SizeOfFile;
<syntaxhighlight lang="delphi">program SizeOfFile;


{$APPTYPE CONSOLE}
{$APPTYPE CONSOLE}
Line 606: Line 606:
Writeln('input.txt ', CheckFileSize('input.txt'));
Writeln('input.txt ', CheckFileSize('input.txt'));
Writeln('\input.txt ', CheckFileSize('\input.txt'));
Writeln('\input.txt ', CheckFileSize('\input.txt'));
end.</lang>
end.</syntaxhighlight>


=={{header|E}}==
=={{header|E}}==


<lang e>for file in [<file:input.txt>, <file:///input.txt>] {
<syntaxhighlight lang="e">for file in [<file:input.txt>, <file:///input.txt>] {
println(`The size of $file is ${file.length()} bytes.`)
println(`The size of $file is ${file.length()} bytes.`)
}</lang>
}</syntaxhighlight>


=={{header|Eiffel}}==
=={{header|Eiffel}}==


<lang eiffel>
<syntaxhighlight lang="eiffel">
class
class
APPLICATION
APPLICATION
Line 638: Line 638:
environment:EXECUTION_ENVIRONMENT
environment:EXECUTION_ENVIRONMENT
end
end
</syntaxhighlight>
</lang>


=={{header|Elena}}==
=={{header|Elena}}==
ELENA 4.x :
ELENA 4.x :
<lang elena>import system'io;
<syntaxhighlight lang="elena">import system'io;
import extensions;
import extensions;
Line 650: Line 650:
console.printLine(File.assign("\input.txt").Length)
console.printLine(File.assign("\input.txt").Length)
}</lang>
}</syntaxhighlight>


=={{header|Elixir}}==
=={{header|Elixir}}==
<lang elixir>IO.puts File.stat!("input.txt").size
<syntaxhighlight lang="elixir">IO.puts File.stat!("input.txt").size
IO.puts File.stat!("/input.txt").size</lang>
IO.puts File.stat!("/input.txt").size</syntaxhighlight>


=={{header|Emacs Lisp}}==
=={{header|Emacs Lisp}}==
Line 660: Line 660:
<code>file-attributes</code> returns <code>nil</code> in that case.
<code>file-attributes</code> returns <code>nil</code> in that case.


<lang Lisp>(message "sizes are %s and %s"
<syntaxhighlight lang="lisp">(message "sizes are %s and %s"
(nth 7 (file-attributes "input.txt"))
(nth 7 (file-attributes "input.txt"))
(nth 7 (file-attributes "/input.txt")))</lang>
(nth 7 (file-attributes "/input.txt")))</syntaxhighlight>


=={{header|Erlang}}==
=={{header|Erlang}}==


<lang erlang>-module(file_size).
<syntaxhighlight lang="erlang">-module(file_size).
-export([file_size/0]).
-export([file_size/0]).


Line 682: Line 682:
io:format("~s could not be opened~n",[Filename])
io:format("~s could not be opened~n",[Filename])
end.
end.
</syntaxhighlight>
</lang>


=={{header|Euphoria}}==
=={{header|Euphoria}}==
<lang euphoria>include file.e
<syntaxhighlight lang="euphoria">include file.e


function file_size(sequence file_name)
function file_size(sequence file_name)
Line 708: Line 708:


test("input.txt") -- in the current working directory
test("input.txt") -- in the current working directory
test("/input.txt") -- in the file system root</lang>
test("/input.txt") -- in the file system root</syntaxhighlight>


=={{header|F_Sharp|F#}}==
=={{header|F_Sharp|F#}}==


<lang fsharp>open NUnit.Framework
<syntaxhighlight lang="fsharp">open NUnit.Framework
open FsUnit
open FsUnit


Line 719: Line 719:
let local = System.IO.FileInfo(__SOURCE_DIRECTORY__ + "\input.txt")
let local = System.IO.FileInfo(__SOURCE_DIRECTORY__ + "\input.txt")
let root = System.IO.FileInfo(System.IO.Directory.GetDirectoryRoot(__SOURCE_DIRECTORY__) + "input.txt")
let root = System.IO.FileInfo(System.IO.Directory.GetDirectoryRoot(__SOURCE_DIRECTORY__) + "input.txt")
local.Length = root.Length |> should be True</lang>
local.Length = root.Length |> should be True</syntaxhighlight>


=={{header|Factor}}==
=={{header|Factor}}==
<lang factor>"input.txt" file-info size>> .
<syntaxhighlight lang="factor">"input.txt" file-info size>> .
1321
1321
"file-does-not-exist.txt" file-info size>>
"file-does-not-exist.txt" file-info size>>
"Unix system call ``stat'' failed:"...</lang>
"Unix system call ``stat'' failed:"...</syntaxhighlight>


=={{header|FBSL}}==
=={{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.
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.
<lang qbasic>#APPTYPE CONSOLE
<syntaxhighlight lang="qbasic">#APPTYPE CONSOLE


print FileLen("sync.log")
print FileLen("sync.log")
print FileLen("\sync.log")
print FileLen("\sync.log")
PAUSE
PAUSE
</syntaxhighlight>
</lang>


=={{header|Forth}}==
=={{header|Forth}}==


<lang forth>: .filesize ( addr len -- ) 2dup type ." is "
<syntaxhighlight lang="forth">: .filesize ( addr len -- ) 2dup type ." is "
r/o open-file throw
r/o open-file throw
dup file-size throw <# #s #> type ." bytes long." cr
dup file-size throw <# #s #> type ." bytes long." cr
Line 744: Line 744:


s" input.txt" .filesize
s" input.txt" .filesize
s" /input.txt" .filesize</lang>
s" /input.txt" .filesize</syntaxhighlight>


=={{header|Fortran}}==
=={{header|Fortran}}==
Line 750: Line 750:
Since Fortran 95 the size of standard external files may be determined simply by using INQUIRE(SIZE=...).
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.
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
use :: iso_fortran_env, only : FILE_STORAGE_SIZE
Line 761: Line 761:
enddo
enddo
end
end
</lang>
</syntaxhighlight>


The original example, now obsolete ...
The original example, now obsolete ...
Line 773: 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.
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:<lang Fortran> 20 READ (INF,21, END = 30) L !R E A D A R E C O R D - but only its length.
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:<syntaxhighlight lang="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.
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.
NRECS = NRECS + 1 !CALL LONGCOUNT(NRECS,1) !C O U N T A R E C O R D.
Line 784: Line 784:
RMAXR = NRECS !Where it's at.
RMAXR = NRECS !Where it's at.
END IF !So much for the lengths.
END IF !So much for the lengths.
GO TO 20 !All I wanted to know...</lang>
GO TO 20 !All I wanted to know...</syntaxhighlight>
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.
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}}==
=={{header|FreeBASIC}}==
<lang freebasic>' FB 1.05.0 Win64
<syntaxhighlight lang="freebasic">' FB 1.05.0 Win64


#include "file.bi"
#include "file.bi"


Print FileLen("input.txt"), FileLen(Environ("SystemRoot") + "\input.txt")
Print FileLen("input.txt"), FileLen(Environ("SystemRoot") + "\input.txt")
Sleep</lang>
Sleep</syntaxhighlight>


=={{header|Frink}}==
=={{header|Frink}}==
<lang frink>println[newJava["java.io.File", "input.txt"].length[]]
<syntaxhighlight lang="frink">println[newJava["java.io.File", "input.txt"].length[]]
println[newJava["java.io.File", "/input.txt"].length[]]</lang>
println[newJava["java.io.File", "/input.txt"].length[]]</syntaxhighlight>


=={{header|Gambas}}==
=={{header|Gambas}}==
<lang gambas>Public Sub Main()
<syntaxhighlight lang="gambas">Public Sub Main()
Dim stInfo As Stat = Stat(User.home &/ "input.txt")
Dim stInfo As Stat = Stat(User.home &/ "input.txt")
Dim stInfo1 As Stat = Stat("/input.txt")
Dim stInfo1 As Stat = Stat("/input.txt")
Line 807: Line 807:
Print "/input.txt = " & stInfo1.Size & " bytes"
Print "/input.txt = " & stInfo1.Size & " bytes"


End</lang>
End</syntaxhighlight>
Output:
Output:
<pre>
<pre>
Line 815: Line 815:


=={{header|Go}}==
=={{header|Go}}==
<lang go>package main
<syntaxhighlight lang="go">package main


import "fmt"
import "fmt"
Line 831: Line 831:
printFileSize("input.txt")
printFileSize("input.txt")
printFileSize("/input.txt")
printFileSize("/input.txt")
}</lang>
}</syntaxhighlight>


=={{header|Groovy}}==
=={{header|Groovy}}==
<lang groovy>println new File('index.txt').length();
<syntaxhighlight lang="groovy">println new File('index.txt').length();
println new File('/index.txt').length();</lang>
println new File('/index.txt').length();</syntaxhighlight>


=={{header|Haskell}}==
=={{header|Haskell}}==


<lang haskell>import System.IO
<syntaxhighlight lang="haskell">import System.IO


printFileSize filename = withFile filename ReadMode hFileSize >>= print
printFileSize filename = withFile filename ReadMode hFileSize >>= print


main = mapM_ printFileSize ["input.txt", "/input.txt"]</lang>
main = mapM_ printFileSize ["input.txt", "/input.txt"]</syntaxhighlight>
or
or
<lang haskell>import System.Posix.File
<syntaxhighlight lang="haskell">import System.Posix.File


printFileSize filename = do stat <- getFileStatus filename
printFileSize filename = do stat <- getFileStatus filename
print (fileSize stat)
print (fileSize stat)


main = mapM_ printFileSize ["input.txt", "/input.txt"]</lang>
main = mapM_ printFileSize ["input.txt", "/input.txt"]</syntaxhighlight>


=={{header|HicEst}}==
=={{header|HicEst}}==
<lang hicest>READ(FILE="input.txt", LENgth=bytes) ! bytes = -1 if not existent
<syntaxhighlight 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 </lang>
READ(FILE="C:\input.txt", LENgth=bytes) ! bytes = -1 if not existent </syntaxhighlight>


=={{header|Icon}} and {{header|Unicon}}==
=={{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.
Icon doesn't support 'stat'; however, information can be obtained by use of the system function to access command line.
<lang Unicon>every dir := !["./","/"] do {
<syntaxhighlight lang="unicon">every dir := !["./","/"] do {
write("Size of ",f := dir || "input.txt"," = ",stat(f).size) |stop("failure for to stat ",f)
write("Size of ",f := dir || "input.txt"," = ",stat(f).size) |stop("failure for to stat ",f)
}</lang>
}</syntaxhighlight>
Note: Icon and Unicon accept both / and \ for directory separators.
Note: Icon and Unicon accept both / and \ for directory separators.


=={{header|J}}==
=={{header|J}}==
<lang J>require 'files'
<syntaxhighlight lang="j">require 'files'
fsize 'input.txt';'/input.txt'</lang>
fsize 'input.txt';'/input.txt'</syntaxhighlight>


=={{header|Java}}==
=={{header|Java}}==
<lang java>import java.io.File;
<syntaxhighlight lang="java">import java.io.File;


public class FileSize
public class FileSize
Line 878: Line 878:
}
}
}
}
</syntaxhighlight>
</lang>


=={{header|JavaScript}}==
=={{header|JavaScript}}==
{{works with|JScript}}
{{works with|JScript}}
<lang javascript>var fso = new ActiveXObject("Scripting.FileSystemObject");
<syntaxhighlight lang="javascript">var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.GetFile('input.txt').Size;
fso.GetFile('input.txt').Size;
fso.GetFile('c:/input.txt').Size;</lang>
fso.GetFile('c:/input.txt').Size;</syntaxhighlight>


The following works in all browsers, including IE10.
The following works in all browsers, including IE10.
<lang javascript>var file = document.getElementById("fileInput").files.item(0); //a file input element
<syntaxhighlight lang="javascript">var file = document.getElementById("fileInput").files.item(0); //a file input element
if (file) {
if (file) {
var reader = new FileReader();
var reader = new FileReader();
Line 900: Line 900:
function errorHandler(event) {
function errorHandler(event) {
alert(event);
alert(event);
}</lang>
}</syntaxhighlight>


=={{header|jq}}==
=={{header|jq}}==
<lang sh>jq -Rs length input.txt
<syntaxhighlight lang="sh">jq -Rs length input.txt


jq -Rs length /input.txt</lang>
jq -Rs length /input.txt</syntaxhighlight>


The -R option causes the file to be read as text, and the -s option causes it to be read as a single string.
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}}==
=={{header|Julia}}==
<lang julia>println(filesize("input.txt"))
<syntaxhighlight lang="julia">println(filesize("input.txt"))
println(filesize("/input.txt"))</lang>
println(filesize("/input.txt"))</syntaxhighlight>


=={{header|K}}==
=={{header|K}}==
<lang K>_size "input.txt"
<syntaxhighlight lang="k">_size "input.txt"
_size "/input.txt"</lang>
_size "/input.txt"</syntaxhighlight>


=={{header|Kotlin}}==
=={{header|Kotlin}}==
<lang scala>// version 1.0.6
<syntaxhighlight lang="scala">// version 1.0.6


import java.io.File
import java.io.File
Line 926: Line 926:
for (path in paths)
for (path in paths)
println("Length of $path is ${File(path).length()} bytes")
println("Length of $path is ${File(path).length()} bytes")
}</lang>
}</syntaxhighlight>


=={{header|Lasso}}==
=={{header|Lasso}}==
<lang Lasso>// local to current directory
<syntaxhighlight lang="lasso">// local to current directory
local(f = file('input.txt'))
local(f = file('input.txt'))
handle => { #f->close }
handle => { #f->close }
Line 938: Line 938:
handle => { #f->close }
handle => { #f->close }
#f->size
#f->size
</syntaxhighlight>
</lang>


=={{header|Liberty BASIC}}==
=={{header|Liberty BASIC}}==
<lang lb>'input.txt in current directory
<syntaxhighlight lang="lb">'input.txt in current directory
OPEN DefaultDir$ + "/input.txt" FOR input AS #m
OPEN DefaultDir$ + "/input.txt" FOR input AS #m
PRINT "File size: "; lof(#m)
PRINT "File size: "; lof(#m)
Line 949: Line 949:
OPEN "c:/input.txt" FOR input AS #m
OPEN "c:/input.txt" FOR input AS #m
PRINT "File size: "; lof(#m)
PRINT "File size: "; lof(#m)
CLOSE #m</lang>
CLOSE #m</syntaxhighlight>


=={{header|Lingo}}==
=={{header|Lingo}}==
<lang lingo>----------------------------------------
<syntaxhighlight lang="lingo">----------------------------------------
-- Returns file size
-- Returns file size
-- @param {string} filename
-- @param {string} filename
Line 964: Line 964:
fp.closeFile()
fp.closeFile()
return len
return len
end</lang>
end</syntaxhighlight>


=={{header|LiveCode}}==
=={{header|LiveCode}}==
<lang LiveCode>// root folder
<syntaxhighlight lang="livecode">// root folder
set the defaultfolder to "/"
set the defaultfolder to "/"
repeat for each line fline in (the detailed files)
repeat for each line fline in (the detailed files)
Line 986: Line 986:
exit repeat
exit repeat
end if
end if
end repeat</lang>
end repeat</syntaxhighlight>


=={{header|Lua}}==
=={{header|Lua}}==
<lang Lua>function GetFileSize( filename )
<syntaxhighlight lang="lua">function GetFileSize( filename )
local fp = io.open( filename )
local fp = io.open( filename )
if fp == nil then
if fp == nil then
Line 997: Line 997:
fp:close()
fp:close()
return filesize
return filesize
end</lang>
end</syntaxhighlight>


=={{header|Maple}}==
=={{header|Maple}}==
<lang Maple>FileTools:-Size( "input.txt" )</lang>
<syntaxhighlight lang="maple">FileTools:-Size( "input.txt" )</syntaxhighlight>
<lang Maple>FileTools:-Size( "/input.txt" )</lang>
<syntaxhighlight lang="maple">FileTools:-Size( "/input.txt" )</syntaxhighlight>


=={{header|Mathematica}} / {{header|Wolfram Language}}==
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<syntaxhighlight lang="mathematica">
<lang Mathematica>
FileByteCount["input.txt"]
FileByteCount["input.txt"]
FileByteCount[FileNameJoin[{$RootDirectory, "input.txt"}]]</lang>
FileByteCount[FileNameJoin[{$RootDirectory, "input.txt"}]]</syntaxhighlight>


=={{header|MATLAB}} / {{header|Octave}}==
=={{header|MATLAB}} / {{header|Octave}}==
<lang matlab>d1 = dir('input.txt');
<syntaxhighlight lang="matlab">d1 = dir('input.txt');
d2 = 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', d1.bytes)
fprintf('Size of /input.txt is %d bytes\n', d2.bytes)</lang>
fprintf('Size of /input.txt is %d bytes\n', d2.bytes)</syntaxhighlight>


=={{header|MAXScript}}==
=={{header|MAXScript}}==
<lang maxscript>-- Returns filesize in bytes or 0 if the file is missing
<syntaxhighlight lang="maxscript">-- Returns filesize in bytes or 0 if the file is missing
getFileSize "index.txt"
getFileSize "index.txt"
getFileSize "\index.txt"</lang>
getFileSize "\index.txt"</syntaxhighlight>


=={{header|Mirah}}==
=={{header|Mirah}}==
<lang mirah>import java.io.File
<syntaxhighlight lang="mirah">import java.io.File


puts File.new('file-size.mirah').length()
puts File.new('file-size.mirah').length()
puts File.new("./#{File.separator}file-size.mirah").length()</lang>
puts File.new("./#{File.separator}file-size.mirah").length()</syntaxhighlight>


=={{header|mIRC Scripting Language}}==
=={{header|mIRC Scripting Language}}==
<lang mirc>echo -ag $file(input.txt).size bytes
<syntaxhighlight lang="mirc">echo -ag $file(input.txt).size bytes
echo -ag $file(C:\input.txt).size bytes</lang>
echo -ag $file(C:\input.txt).size bytes</syntaxhighlight>


=={{header|Modula-3}}==
=={{header|Modula-3}}==
<lang modula3>MODULE FSize EXPORTS Main;
<syntaxhighlight lang="modula3">MODULE FSize EXPORTS Main;


IMPORT IO, Fmt, FS, File, OSError;
IMPORT IO, Fmt, FS, File, OSError;
Line 1,045: Line 1,045:
| OSError.E => IO.Put("ERROR: Could not get file status.\n");
| OSError.E => IO.Put("ERROR: Could not get file status.\n");
END;
END;
END FSize.</lang>
END FSize.</syntaxhighlight>


=={{header|Nanoquery}}==
=={{header|Nanoquery}}==
<lang Nanoquery>import Nanoquery.IO
<syntaxhighlight lang="nanoquery">import Nanoquery.IO
println new(File, "input.txt").length()
println new(File, "input.txt").length()
println new(File, "/input.txt").length()</lang>
println new(File, "/input.txt").length()</syntaxhighlight>


=={{header|NetRexx}}==
=={{header|NetRexx}}==
<lang NetRexx>/* NetRexx */
<syntaxhighlight lang="netrexx">/* NetRexx */
options replace format comments java symbols binary
options replace format comments java symbols binary


Line 1,086: Line 1,086:
end
end


return</lang>
return</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 1,103: Line 1,103:


=={{header|NewLISP}}==
=={{header|NewLISP}}==
<lang NewLISP>(println (first (file-info "input.txt")))
<syntaxhighlight lang="newlisp">(println (first (file-info "input.txt")))
(println (first (file-info "/input.txt")))</lang>
(println (first (file-info "/input.txt")))</syntaxhighlight>


=={{header|Nim}}==
=={{header|Nim}}==
<lang nim>import os
<syntaxhighlight lang="nim">import os
echo getFileSize "input.txt"
echo getFileSize "input.txt"
echo getFileSize "/input.txt"</lang>
echo getFileSize "/input.txt"</syntaxhighlight>


=={{header|Objeck}}==
=={{header|Objeck}}==
<lang objeck>
<syntaxhighlight lang="objeck">
use IO;
use IO;
...
...
File("input.txt")->Size()->PrintLine();
File("input.txt")->Size()->PrintLine();
File("c:\input.txt")->Size()->PrintLine();
File("c:\input.txt")->Size()->PrintLine();
</syntaxhighlight>
</lang>


=={{header|Objective-C}}==
=={{header|Objective-C}}==


<lang objc>NSFileManager *fm = [NSFileManager defaultManager];
<syntaxhighlight lang="objc">NSFileManager *fm = [NSFileManager defaultManager];


// Pre-OS X 10.5
// Pre-OS X 10.5
Line 1,127: Line 1,127:


// OS X 10.5+
// OS X 10.5+
NSLog(@"%llu", [[fm attributesOfItemAtPath:@"input.txt" error:NULL] fileSize]);</lang>
NSLog(@"%llu", [[fm attributesOfItemAtPath:@"input.txt" error:NULL] fileSize]);</syntaxhighlight>


=={{header|OCaml}}==
=={{header|OCaml}}==


<lang ocaml>let printFileSize filename =
<syntaxhighlight lang="ocaml">let printFileSize filename =
let ic = open_in filename in
let ic = open_in filename in
Printf.printf "%d\n" (in_channel_length ic);
Printf.printf "%d\n" (in_channel_length ic);
Line 1,137: Line 1,137:


printFileSize "input.txt" ;;
printFileSize "input.txt" ;;
printFileSize "/input.txt" ;;</lang>
printFileSize "/input.txt" ;;</syntaxhighlight>


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]:
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]:
<lang ocaml>let printLargeFileSize filename =
<syntaxhighlight lang="ocaml">let printLargeFileSize filename =
let ic = open_in filename in
let ic = open_in filename in
Printf.printf "%Ld\n" (LargeFile.in_channel_length ic);
Printf.printf "%Ld\n" (LargeFile.in_channel_length ic);
close_in ic ;;</lang>
close_in ic ;;</syntaxhighlight>


Alternatively:
Alternatively:
<lang ocaml>#load "unix.cma" ;;
<syntaxhighlight lang="ocaml">#load "unix.cma" ;;
open Unix ;;
open Unix ;;
Printf.printf "%d\n" (stat "input.txt").st_size ;;
Printf.printf "%d\n" (stat "input.txt").st_size ;;
Printf.printf "%d\n" (stat "/input.txt").st_size ;;</lang>
Printf.printf "%d\n" (stat "/input.txt").st_size ;;</syntaxhighlight>


The module Unix has also a [http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.LargeFile.html LargeFile sub-module].
The module Unix has also a [http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.LargeFile.html LargeFile sub-module].
Line 1,155: Line 1,155:
=={{header|Oforth}}==
=={{header|Oforth}}==


<lang Oforth>File new("input.txt") size println
<syntaxhighlight lang="oforth">File new("input.txt") size println
File new("/input.txt") size println</lang>
File new("/input.txt") size println</syntaxhighlight>


=={{header|ooRexx}}==
=={{header|ooRexx}}==
<lang oorexx>Parse Version v
<syntaxhighlight lang="oorexx">Parse Version v
Say v
Say v
fid='test.txt'
fid='test.txt'
Line 1,171: Line 1,171:
Say length(s)
Say length(s)
Say 'file' fid
Say 'file' fid
'type' fid</lang>
'type' fid</syntaxhighlight>
{{out}}
{{out}}
<pre>J:\>rexx sft
<pre>J:\>rexx sft
Line 1,185: Line 1,185:


=={{header|Oz}}==
=={{header|Oz}}==
<lang oz>declare
<syntaxhighlight lang="oz">declare
[Path] = {Module.link ['x-oz://system/os/Path.ozf']}
[Path] = {Module.link ['x-oz://system/os/Path.ozf']}
in
in
{Show {Path.size "input.txt"}}
{Show {Path.size "input.txt"}}
{Show {Path.size "/input.txt"}}</lang>
{Show {Path.size "/input.txt"}}</syntaxhighlight>


=={{header|Pascal}}==
=={{header|Pascal}}==
Line 1,196: Line 1,196:
=={{header|Perl}}==
=={{header|Perl}}==


<lang perl>my $size1 = -s 'input.txt';
<syntaxhighlight lang="perl">my $size1 = -s 'input.txt';
my $size2 = -s '/input.txt';</lang>
my $size2 = -s '/input.txt';</syntaxhighlight>


Or, to be 100% cross-platform:
Or, to be 100% cross-platform:
<lang perl>use File::Spec::Functions qw(catfile rootdir);
<syntaxhighlight lang="perl">use File::Spec::Functions qw(catfile rootdir);
my $size1 = -s 'input.txt';
my $size1 = -s 'input.txt';
my $size2 = -s catfile rootdir, 'input.txt';</lang>
my $size2 = -s catfile rootdir, 'input.txt';</syntaxhighlight>


Alternative way to get the size:
Alternative way to get the size:
<lang perl>my $size1 = (stat 'input.txt')[7]; # builtin stat() returns an array with file size at index 7
<syntaxhighlight 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];</lang>
my $size2 = (stat '/input.txt')[7];</syntaxhighlight>


=={{header|Phix}}==
=={{header|Phix}}==
{{libheader|Phix/basics}}
{{libheader|Phix/basics}}
<!--<lang Phix>-->
<!--<syntaxhighlight lang="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: #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>
<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: 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 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
<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
<!--</lang>-->
<!--</syntaxhighlight>-->


=={{header|PHP}}==
=={{header|PHP}}==
<lang php><?php
<syntaxhighlight lang="php"><?php
echo filesize('input.txt'), "\n";
echo filesize('input.txt'), "\n";
echo filesize('/input.txt'), "\n";
echo filesize('/input.txt'), "\n";
?></lang>
?></syntaxhighlight>


=={{header|PicoLisp}}==
=={{header|PicoLisp}}==
<lang PicoLisp>(println (car (info "input.txt")))
<syntaxhighlight lang="picolisp">(println (car (info "input.txt")))
(println (car (info "/input.txt")))</lang>
(println (car (info "/input.txt")))</syntaxhighlight>


=={{header|Pike}}==
=={{header|Pike}}==
<lang pike>import Stdio;
<syntaxhighlight lang="pike">import Stdio;
int main(){
int main(){
write(file_size("input.txt") + "\n");
write(file_size("input.txt") + "\n");
write(file_size("/input.txt") + "\n");
write(file_size("/input.txt") + "\n");
}</lang>
}</syntaxhighlight>


=={{header|PL/I}}==
=={{header|PL/I}}==
<syntaxhighlight lang="pl/i">
<lang PL/I>
/* To obtain file size of files in root as well as from current directory. */
/* To obtain file size of files in root as well as from current directory. */


Line 1,276: Line 1,276:
put skip list ('local file size=' || trim(i));
put skip list ('local file size=' || trim(i));
end test;
end test;
</syntaxhighlight>
</lang>
<pre>
<pre>
I used differently-named files to prove that local and root directory
I used differently-named files to prove that local and root directory
Line 1,285: Line 1,285:
=={{header|Pop11}}==
=={{header|Pop11}}==


<lang pop11>;;; prints file size in bytes
<syntaxhighlight lang="pop11">;;; prints file size in bytes
sysfilesize('input.txt') =>
sysfilesize('input.txt') =>
sysfilesize('/input.txt') =></lang>
sysfilesize('/input.txt') =></syntaxhighlight>


=={{header|PostScript}}==
=={{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.
<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.
<lang postscript>(input.txt ) print
<syntaxhighlight lang="postscript">(input.txt ) print
(input.txt) status pop pop pop = pop
(input.txt) status pop pop pop = pop
(/input.txt ) print
(/input.txt ) print
(/input.txt) status pop pop pop = pop</lang>
(/input.txt) status pop pop pop = pop</syntaxhighlight>


=={{header|PowerShell}}==
=={{header|PowerShell}}==
<lang powershell>Get-ChildItem input.txt | Select-Object Name,Length
<syntaxhighlight lang="powershell">Get-ChildItem input.txt | Select-Object Name,Length
Get-ChildItem \input.txt | Select-Object Name,Length</lang>
Get-ChildItem \input.txt | Select-Object Name,Length</syntaxhighlight>


=={{header|PureBasic}}==
=={{header|PureBasic}}==
<lang purebasic>Debug FileSize("input.txt")
<syntaxhighlight lang="purebasic">Debug FileSize("input.txt")
Debug FileSize("/input.txt")</lang>
Debug FileSize("/input.txt")</syntaxhighlight>


=={{header|Python}}==
=={{header|Python}}==


<lang python>import os
<syntaxhighlight lang="python">import os


size = os.path.getsize('input.txt')
size = os.path.getsize('input.txt')
size = os.path.getsize('/input.txt')</lang>
size = os.path.getsize('/input.txt')</syntaxhighlight>


=={{header|R}}==
=={{header|R}}==
Line 1,316: 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.
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.


<lang R>sizeinwd <- file.info('input.txt')[["size"]]
<syntaxhighlight lang="r">sizeinwd <- file.info('input.txt')[["size"]]
sizeinroot <- file.info('/input.txt')[["size"]]</lang>
sizeinroot <- file.info('/input.txt')[["size"]]</syntaxhighlight>


=={{header|Racket}}==
=={{header|Racket}}==
<lang Racket>#lang racket
<syntaxhighlight lang="racket">#lang racket
(file-size "input.txt")
(file-size "input.txt")
(file-size "/input.txt")</lang>
(file-size "/input.txt")</syntaxhighlight>


=={{header|Raku}}==
=={{header|Raku}}==
(formerly Perl 6)
(formerly Perl 6)
{{works with|Rakudo|2015.12}}
{{works with|Rakudo|2015.12}}
<lang perl6>say 'input.txt'.IO.s;
<syntaxhighlight lang="raku" line>say 'input.txt'.IO.s;
say '/input.txt'.IO.s;</lang>
say '/input.txt'.IO.s;</syntaxhighlight>


Cross-platform version of the second one:
Cross-platform version of the second one:
<lang perl6>say $*SPEC.rootdir.IO.child("input.txt").s;</lang>
<syntaxhighlight lang="raku" line>say $*SPEC.rootdir.IO.child("input.txt").s;</syntaxhighlight>


=={{header|RapidQ}}==
=={{header|RapidQ}}==
Line 1,338: Line 1,338:
Method 1: display file size using file streams
Method 1: display file size using file streams


<lang rapidq>$INCLUDE "rapidq.inc"
<syntaxhighlight lang="rapidq">$INCLUDE "rapidq.inc"


DIM file AS QFileStream
DIM file AS QFileStream
Line 1,349: Line 1,349:


PRINT "Size of input.txt is "; fileSize("input.txt")
PRINT "Size of input.txt is "; fileSize("input.txt")
PRINT "Size of \input.txt is "; fileSize("\input.txt")</lang>
PRINT "Size of \input.txt is "; fileSize("\input.txt")</syntaxhighlight>


Method 2: using DIR$
Method 2: using DIR$


<lang rapidq>FileName$ = DIR$("input.txt", 0)
<syntaxhighlight lang="rapidq">FileName$ = DIR$("input.txt", 0)
PRINT "Size of input.txt is "; FileRec.Size
PRINT "Size of input.txt is "; FileRec.Size
FileName$ = DIR$("\input.txt", 0)
FileName$ = DIR$("\input.txt", 0)
PRINT "Size of \input.txt is "; FileRec.Size</lang>
PRINT "Size of \input.txt is "; FileRec.Size</syntaxhighlight>


=={{header|Raven}}==
=={{header|Raven}}==
<lang raven>'input.txt' status.size
<syntaxhighlight lang="raven">'input.txt' status.size
'/input.txt' status.size</lang>
'/input.txt' status.size</syntaxhighlight>


=={{header|REBOL}}==
=={{header|REBOL}}==
<lang REBOL>size? %info.txt
<syntaxhighlight lang="rebol">size? %info.txt
size? %/info.txt
size? %/info.txt
size? ftp://username:password@ftp.site.com/info.txt
size? ftp://username:password@ftp.site.com/info.txt
size? http://rosettacode.org</lang>
size? http://rosettacode.org</syntaxhighlight>


=={{header|Red}}==
=={{header|Red}}==
<lang Red>>> size? %input.txt
<syntaxhighlight lang="red">>> size? %input.txt
== 39244
== 39244
>> size? %/c/input.txt
>> size? %/c/input.txt
== 39244</lang>
== 39244</syntaxhighlight>


=={{header|Retro}}==
=={{header|Retro}}==
The simple way is to open and read the size. This may crash if the file does not exist.
The simple way is to open and read the size. This may crash if the file does not exist.


<lang Retro>with files'
<syntaxhighlight lang="retro">with files'
"input.txt" :R open &size sip close drop putn
"input.txt" :R open &size sip close drop putn
"/input.txt" :R open &size sip close drop putn</lang>
"/input.txt" :R open &size sip close drop putn</syntaxhighlight>


For added stability, check that the returned file handle is not zero:
For added stability, check that the returned file handle is not zero:


<lang Retro>with files'
<syntaxhighlight lang="retro">with files'
"input.txt" :R open over 0 <> [ &size sip close drop ] ifTrue</lang>
"input.txt" :R open over 0 <> [ &size sip close drop ] ifTrue</syntaxhighlight>


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:
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:


<lang Retro>with files'
<syntaxhighlight lang="retro">with files'
: getFileSize ( $-n )
: getFileSize ( $-n )
:R open 0 over =
:R open 0 over =
Line 1,395: Line 1,395:


"input.txt" getFileSize putn
"input.txt" getFileSize putn
"/input.txt" getFileSize putn</lang>
"/input.txt" getFileSize putn</syntaxhighlight>


=={{header|REXX}}==
=={{header|REXX}}==
Line 1,405: 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''.
Note that some operating systems don't have a concept of a &nbsp; ''current directory'' &nbsp; or a &nbsp; ''file system root''.
<lang rexx>/*REXX program determines a file's size (by reading all the data) in current dir & root.*/
<syntaxhighlight 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. */
parse arg iFID . /*allow the user specify the file ID. */
if iFID=='' | iFID=="," then iFID='input.txt' /*Not specified? Then use the default.*/
if iFID=='' | iFID=="," then iFID='input.txt' /*Not specified? Then use the default.*/
Line 1,414: Line 1,414:
fSize: parse arg f; $=0; do while chars(f)\==0; $ = $ + length( charin( f, , 1e4) )
fSize: parse arg f; $=0; do while chars(f)\==0; $ = $ + length( charin( f, , 1e4) )
end /*while*/; call lineout f /*close file.*/
end /*while*/; call lineout f /*close file.*/
return $</lang>
return $</syntaxhighlight>
{{out|output|text=&nbsp; when using the default input:}}
{{out|output|text=&nbsp; when using the default input:}}
<pre>
<pre>
Line 1,422: Line 1,422:


===MS DOS version 2===
===MS DOS version 2===
<lang rexx>/*REXX pgm to verify a file's size */
<syntaxhighlight lang="rexx">/*REXX pgm to verify a file's size */
parse arg iFID . /*let user specify the file ID. */
parse arg iFID . /*let user specify the file ID. */
if iFID=='' then iFID="FILESIZ.DAT" /*Not specified? Then use default*/
if iFID=='' then iFID="FILESIZ.DAT" /*Not specified? Then use default*/
Line 1,437: Line 1,437:
sz=sz+length(linein(f))
sz=sz+length(linein(f))
End
End
return sz</lang>
return sz</syntaxhighlight>
{{out}}
{{out}}
<pre>size of FILESIZ.DAT:
<pre>size of FILESIZ.DAT:
Line 1,446: Line 1,446:
Note that CMS hasn't a concept of a ''root''.
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.
<br>Also note that the CMS system doesn't normally support the use of periods ('''.'''); &nbsp; it uses blanks instead.
<lang rexx>/*REXX program determines a file's size (by reading all the data) on the default mDisk.*/
<syntaxhighlight 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. */
parse arg iFID /*allow the user specify the file ID. */
if iFID=='' | iFID=="," then iFID= 'INPUT TXT' /*Not specified? Then use the default.*/
if iFID=='' | iFID=="," then iFID= 'INPUT TXT' /*Not specified? Then use the default.*/
Line 1,454: Line 1,454:
fSize: parse arg f; $= 0; do while lines(f)\==0; $= $ + length( linein(f) )
fSize: parse arg f; $= 0; do while lines(f)\==0; $= $ + length( linein(f) )
end /*while*/
end /*while*/
return $</lang><br>
return $</syntaxhighlight><br>


=={{header|Ring}}==
=={{header|Ring}}==
<lang ring>See len(read('input.txt')) + nl
<syntaxhighlight lang="ring">See len(read('input.txt')) + nl
see len(read('/input.txt')) + nl</lang>
see len(read('/input.txt')) + nl</syntaxhighlight>


=={{header|Ruby}}==
=={{header|Ruby}}==
<lang ruby>size = File.size('input.txt')
<syntaxhighlight lang="ruby">size = File.size('input.txt')
size = File.size('/input.txt')</lang>
size = File.size('/input.txt')</syntaxhighlight>


=={{header|Run BASIC}}==
=={{header|Run BASIC}}==
<lang runbasic>print fileSize(DefaultDir$,"input.txt") ' current default directory
<syntaxhighlight lang="runbasic">print fileSize(DefaultDir$,"input.txt") ' current default directory
print fileSize("","input.txt") ' root directory
print fileSize("","input.txt") ' root directory


Line 1,472: Line 1,472:
fileSize = lof(#f) ' Length Of File
fileSize = lof(#f) ' Length Of File
close #f
close #f
end function</lang>
end function</syntaxhighlight>


=={{header|Rust}}==
=={{header|Rust}}==
<lang rust>use std::{env, fs, process};
<syntaxhighlight lang="rust">use std::{env, fs, process};
use std::io::{self, Write};
use std::io::{self, Write};
use std::fmt::Display;
use std::fmt::Display;
Line 1,492: Line 1,492:
}
}


}</lang>
}</syntaxhighlight>


=={{header|Scala}}==
=={{header|Scala}}==
{{libheader|Scala}}
{{libheader|Scala}}
<lang Scala>import java.io.File
<syntaxhighlight lang="scala">import java.io.File


object FileSize extends App {
object FileSize extends App {
Line 1,503: Line 1,503:
println(s"$name : ${new File(name).length()} bytes")
println(s"$name : ${new File(name).length()} bytes")
println(s"/$name : ${new File(s"${File.separator}$name").length()} bytes")
println(s"/$name : ${new File(s"${File.separator}$name").length()} bytes")
}</lang>
}</syntaxhighlight>


=={{header|Scheme}}==
=={{header|Scheme}}==
<lang scheme>
<syntaxhighlight lang="scheme">
(define (file-size filename)
(define (file-size filename)
(call-with-input-file filename (lambda (port)
(call-with-input-file filename (lambda (port)
Line 1,517: Line 1,517:
(file-size "input.txt")
(file-size "input.txt")
(file-size "/input.txt")
(file-size "/input.txt")
</syntaxhighlight>
</lang>


=={{header|Seed7}}==
=={{header|Seed7}}==
<lang seed7>$ include "seed7_05.s7i";
<syntaxhighlight lang="seed7">$ include "seed7_05.s7i";


const proc: main is func
const proc: main is func
Line 1,526: Line 1,526:
writeln(fileSize("input.txt"));
writeln(fileSize("input.txt"));
writeln(fileSize("/input.txt"));
writeln(fileSize("/input.txt"));
end func;</lang>
end func;</syntaxhighlight>


=={{header|Sidef}}==
=={{header|Sidef}}==
<lang ruby>say (Dir.cwd + %f'input.txt' -> size);
<syntaxhighlight lang="ruby">say (Dir.cwd + %f'input.txt' -> size);
say (Dir.root + %f'input.txt' -> size);</lang>
say (Dir.root + %f'input.txt' -> size);</syntaxhighlight>


=={{header|Slate}}==
=={{header|Slate}}==
<lang slate>(File newNamed: 'input.txt') fileInfo fileSize.
<syntaxhighlight lang="slate">(File newNamed: 'input.txt') fileInfo fileSize.
(File newNamed: '/input.txt') fileInfo fileSize.</lang>
(File newNamed: '/input.txt') fileInfo fileSize.</syntaxhighlight>


=={{header|Smalltalk}}==
=={{header|Smalltalk}}==
{{works with|GNU Smalltalk}}
{{works with|GNU Smalltalk}}
<lang smalltalk>(File name: 'input.txt') size printNl.
<syntaxhighlight lang="smalltalk">(File name: 'input.txt') size printNl.
(File name: '/input.txt') size printNl.</lang>
(File name: '/input.txt') size printNl.</syntaxhighlight>
{{works with|Smalltalk/X}}
{{works with|Smalltalk/X}}
{{works with|VisualWorks Smalltalk}}
{{works with|VisualWorks Smalltalk}}
<lang smalltalk>'input.txt' asFilename fileSize
<syntaxhighlight lang="smalltalk">'input.txt' asFilename fileSize
'/input.txt' asFilename fileSize</lang>
'/input.txt' asFilename fileSize</syntaxhighlight>


=={{header|Standard ML}}==
=={{header|Standard ML}}==


<lang sml>val size = OS.FileSys.fileSize "input.txt" ;;
<syntaxhighlight lang="sml">val size = OS.FileSys.fileSize "input.txt" ;;
val size = OS.FileSys.fileSize "/input.txt" ;</lang>
val size = OS.FileSys.fileSize "/input.txt" ;</syntaxhighlight>


=={{header|Stata}}==
=={{header|Stata}}==
Line 1,554: 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.
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.


<lang stata>file open f using input.txt, read binary
<syntaxhighlight lang="stata">file open f using input.txt, read binary
file seek f eof
file seek f eof
file seek f query
file seek f query
display r(loc)
display r(loc)
file close f</lang>
file close f</syntaxhighlight>


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.
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.


<lang stata>describe using test.dta
<syntaxhighlight lang="stata">describe using test.dta
display r(N)*r(width)</lang>
display r(N)*r(width)</syntaxhighlight>


=={{header|Tcl}}==
=={{header|Tcl}}==
<lang tcl>file size input.txt
<syntaxhighlight lang="tcl">file size input.txt
file size /input.txt</lang>
file size /input.txt</syntaxhighlight>


=={{header|Toka}}==
=={{header|Toka}}==
A trivial method follows:
A trivial method follows:


<lang toka>" input.txt" "R" file.open dup file.size . file.close
<syntaxhighlight lang="toka">" input.txt" "R" file.open dup file.size . file.close
" /input.txt" "R" file.open dup file.size . file.close</lang>
" /input.txt" "R" file.open dup file.size . file.close</syntaxhighlight>


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


<lang toka>[ "R" file.open
<syntaxhighlight lang="toka">[ "R" file.open
dup 0 <> [ dup file.size . file.close ] ifTrue
dup 0 <> [ dup file.size . file.close ] ifTrue
drop
drop
Line 1,584: Line 1,584:


" input.txt" display-size
" input.txt" display-size
" /input.txt" display-size</lang>
" /input.txt" display-size</syntaxhighlight>


=={{header|TorqueScript}}==
=={{header|TorqueScript}}==
Line 1,592: Line 1,592:
TGE Version (Works with all versions containing the basic file i/o):
TGE Version (Works with all versions containing the basic file i/o):
{{works with|TGE}}
{{works with|TGE}}
<lang Torque>%File = new FileObject();
<syntaxhighlight lang="torque">%File = new FileObject();
%File.openForRead("input.txt");
%File.openForRead("input.txt");


Line 1,601: Line 1,601:


%File.close();
%File.close();
%File.delete();</lang>
%File.delete();</syntaxhighlight>
<br />
<br />
T3D Version (Only works with T3D):
T3D Version (Only works with T3D):
{{works with|T3D}}
{{works with|T3D}}
<lang Torque>fileSize("input.txt");</lang>
<syntaxhighlight lang="torque">fileSize("input.txt");</syntaxhighlight>


=={{header|TUSCRIPT}}==
=={{header|TUSCRIPT}}==
<lang tuscript>
<syntaxhighlight lang="tuscript">
$$ MODE TUSCRIPT
$$ MODE TUSCRIPT
-- size of file input.txt
-- size of file input.txt
Line 1,620: Line 1,620:
file_size=BYTES (file)
file_size=BYTES (file)
ERROR/STOP CLOSE (file)
ERROR/STOP CLOSE (file)
</syntaxhighlight>
</lang>


=={{header|UNIX Shell}}==
=={{header|UNIX Shell}}==
Line 1,628: Line 1,628:
''ls'' most likely gets the length from the file's inode.
''ls'' most likely gets the length from the file's inode.


<lang bash>size1=$(ls -l input.txt | tr -s ' ' | cut -d ' ' -f 5)
<syntaxhighlight lang="bash">size1=$(ls -l input.txt | tr -s ' ' | cut -d ' ' -f 5)
size2=$(ls -l /input.txt | tr -s ' ' | cut -d ' ' -f 5)</lang>
size2=$(ls -l /input.txt | tr -s ' ' | cut -d ' ' -f 5)</syntaxhighlight>


''ls -l'' reports the size in 5th field, with spaces between fields.
''ls -l'' reports the size in 5th field, with spaces between fields.
Line 1,635: Line 1,635:
and ''cut'' extracts 5th field.
and ''cut'' extracts 5th field.


<lang bash>
<syntaxhighlight lang="bash">
echo "# ls:"
echo "# ls:"
ls -la input.txt
ls -la input.txt
Line 1,646: Line 1,646:
size2=$(wc -c < input.txt | tr -d ' ')
size2=$(wc -c < input.txt | tr -d ' ')
echo $size1, $size2
echo $size1, $size2
</syntaxhighlight>
</lang>
{{Out}} Test run at compileonline.com:
{{Out}} Test run at compileonline.com:
<pre>
<pre>
Line 1,666: 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.
''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.


<lang bash>size1=$(wc -c < input.txt | tr -d ' ')
<syntaxhighlight lang="bash">size1=$(wc -c < input.txt | tr -d ' ')
size2=$(wc -c < /input.txt | tr -d ' ')</lang>
size2=$(wc -c < /input.txt | tr -d ' ')</syntaxhighlight>


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.
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: Line 1,678:
{{works with|OpenBSD|3.8}}
{{works with|OpenBSD|3.8}}


<lang bash>size1=$(stat -f %z input.txt)
<syntaxhighlight lang="bash">size1=$(stat -f %z input.txt)
size2=$(stat -f %z /input.txt)</lang>
size2=$(stat -f %z /input.txt)</syntaxhighlight>


===Z Shell===
===Z Shell===
{{works with|zsh}}
{{works with|zsh}}


<lang bash># from module 'zsh/stat', load builtin 'zstat'
<syntaxhighlight lang="bash"># from module 'zsh/stat', load builtin 'zstat'
zmodload -F zsh/stat b:zstat
zmodload -F zsh/stat b:zstat


size1=$(zstat +size input.txt)
size1=$(zstat +size input.txt)
size2=$(zstat +size /input.txt)</lang>
size2=$(zstat +size /input.txt)</syntaxhighlight>


=={{header|Ursa}}==
=={{header|Ursa}}==
<lang ursa>decl file f
<syntaxhighlight lang="ursa">decl file f


f.open "input.txt"
f.open "input.txt"
Line 1,699: Line 1,699:
f.open "/input.txt"
f.open "/input.txt"
out (size f) endl console
out (size f) endl console
f.close</lang>
f.close</syntaxhighlight>


=={{header|VBScript}}==
=={{header|VBScript}}==
{{works with|Windows Script Host|*}}
{{works with|Windows Script Host|*}}
<syntaxhighlight lang="vbscript">
<lang VBScript>
With CreateObject("Scripting.FileSystemObject")
With CreateObject("Scripting.FileSystemObject")
WScript.Echo .GetFile("input.txt").Size
WScript.Echo .GetFile("input.txt").Size
WScript.Echo .GetFile("\input.txt").Size
WScript.Echo .GetFile("\input.txt").Size
End With
End With
</syntaxhighlight>
</lang>


=={{header|Vedit macro language}}==
=={{header|Vedit macro language}}==
<lang vedit>Num_Type(File_Size("input.txt"))
<syntaxhighlight lang="vedit">Num_Type(File_Size("input.txt"))
Num_Type(File_Size("/input.txt"))</lang>
Num_Type(File_Size("/input.txt"))</syntaxhighlight>


=={{header|Visual Basic}}==
=={{header|Visual Basic}}==
{{works with|Visual Basic|6}}
{{works with|Visual Basic|6}}
<lang vb>Option Explicit
<syntaxhighlight lang="vb">Option Explicit


----
----
Line 1,741: Line 1,741:
DisplayFileSize Environ$("SystemRoot"), "input.txt"
DisplayFileSize Environ$("SystemRoot"), "input.txt"
End Sub
End Sub
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>file size: 37 Bytes
<pre>file size: 37 Bytes
Line 1,752: Line 1,752:


{{works with|Visual Basic .NET|9.0+}}
{{works with|Visual Basic .NET|9.0+}}
<lang vbnet>Dim local As New IO.FileInfo("input.txt")
<syntaxhighlight lang="vbnet">Dim local As New IO.FileInfo("input.txt")
Console.WriteLine(local.Length)
Console.WriteLine(local.Length)


Dim root As New IO.FileInfo("\input.txt")
Dim root As New IO.FileInfo("\input.txt")
Console.WriteLine(root.Length)</lang>
Console.WriteLine(root.Length)</syntaxhighlight>


=={{header|Wren}}==
=={{header|Wren}}==
Line 1,762: Line 1,762:


To check the size of a file in the root, just change "input.txt" to "/input.txt" in the following script.
To check the size of a file in the root, just change "input.txt" to "/input.txt" in the following script.
<lang ecmascript>import "io" for File
<syntaxhighlight lang="ecmascript">import "io" for File


var name = "input.txt"
var name = "input.txt"
System.print("'%(name)' has a a size of %(File.size(name)) bytes")</lang>
System.print("'%(name)' has a a size of %(File.size(name)) bytes")</syntaxhighlight>


{{out}}
{{out}}
Line 1,773: Line 1,773:


=={{header|X86 Assembly}}==
=={{header|X86 Assembly}}==
<lang x86asm>
<syntaxhighlight lang="x86asm">
; x86_64 linux nasm
; x86_64 linux nasm


Line 1,842: Line 1,842:
mov rdi, 1
mov rdi, 1
syscall
syscall
</syntaxhighlight>
</lang>


=={{header|XPL0}}==
=={{header|XPL0}}==
<lang XPL0>proc ShowSize(FileName);
<syntaxhighlight lang="xpl0">proc ShowSize(FileName);
char FileName; int Size, C;
char FileName; int Size, C;
[Trap(false); \disable abort on error
[Trap(false); \disable abort on error
Line 1,859: Line 1,859:
[ShowSize("input.txt");
[ShowSize("input.txt");
ShowSize("/input.txt"); \root under Linux
ShowSize("/input.txt"); \root under Linux
]</lang>
]</syntaxhighlight>


=={{header|zkl}}==
=={{header|zkl}}==
<lang zkl>File.info("input.txt").println();
<syntaxhighlight lang="zkl">File.info("input.txt").println();
File.info("/input.txt").println();</lang>
File.info("/input.txt").println();</syntaxhighlight>
-->T(size,creation time,last mod time,isDir,mode), from stat(2)
-->T(size,creation time,last mod time,isDir,mode), from stat(2)
{{out}}
{{out}}