Is it possible to print the size of a given file in latex? For instance, suppose I have a file ./foo.jpg whose size is 381.3 KiB. I want a command \printfilesize so that \printfilesize{./foo.jpg} writes 381.3 KiB.
Asked
Active
Viewed 1,319 times
12
Brian Fitzpatrick
- 1,829
-
Related: https://tex.stackexchange.com/q/346129/2855 – nidhin Nov 25 '18 at 22:07
2 Answers
15
pdftex has primitive for querying the file system:
\documentclass{article}
\usepackage{xfp}
\ExplSyntaxOn
\NewDocumentCommand{\filesize}{O{B}m}
{
\fpeval{ round( \pdffilesize { #2 } / \fp_use:c { c_brian_#1_fp } , 2) }
\,#1
}
\fp_const:Nn \c_brian_B_fp { 1 }
\fp_const:Nn \c_brian_KiB_fp { 1024 }
\fp_const:Nn \c_brian_MiB_fp { 1024*1024 }
\fp_const:Nn \c_brian_GiB_fp { 1024*1024*1024 }
\ExplSyntaxOff
\begin{document}
\filesize{../duck.jpg}
\filesize[KiB]{../duck.jpg}
\end{document}
egreg
- 1,121,712


