Hoje, mais uma vez, vamos exercitar nossos conhecimentos criando rotinas que podem ser úteis em diversas situações. E dessa vez veremos como saber o tamanho de um arquivo em 10 linguagens de programação diferentes, são elas: C , C++ , Java , C# , PHP , Lua , Perl , Python , JavaScript /Node.js e Go/Golang .
Assim como nos artigos:
Vou somente postar o código de cada uma delas!
O arquivo file.iso
é fictício e você deve substituir por um arquivo válido em seu computador para efetivar os testes.
Você pode comparar o resultado usando o comando: du -h file.iso
.
01. C
filesize.c
#include <stdio.h>
int main (){
FILE * file = fopen ( "file.iso" , "rb" );
fseek ( file , 0 , SEEK_END );
int size = ftell ( file );
fclose ( file );
printf ( "%d MB \n " , ( size / 1024 ) / 1024 );
return 0 ;
}
gcc filesize.c && ./a.out
filesize.cpp
#include <iostream>
#include <fstream>
int main (){
std :: ifstream file ( "file.iso" , std :: ios :: in | std :: ios :: binary );
file . seekg ( 0 , std :: ios :: end );
std :: cout << ( file . tellg () / 1024 ) / 1024 << " MB \n " ;
return 0 ;
}
g++ filesize.cpp && ./a.out
FileSize.java
import java.io.File ;
public class FileSize {
public static void main ( String [] args ) {
String path = "file.iso" ;
long size = new File ( path ). length ();
System . out . println (( size / 1024 ) / 1024 + " MB" );
}
}
javac FileSize.java && java FileSize
filesize.lua
file = io.open ( "file.iso" , "r" )
size = math.floor (( file : seek ( "end" ) / 1024 ) / 1024 )
print ( size .. " MB" )
lua filesize.lua
filesize.pl
$path = " file.iso ";
my $x = - s $path;
$x = ($x / 1024) / 1024 ;
$x = int ( $x );
print (" $x MiB \n ");
perl filesize.pl
filesize.py
import os
path = "file.iso"
size = os . path . getsize ( path )
print ( str ( int ( ( size / 1024 ) / 1024 ) ) + " MB" )
python filesize.py
filesize.php
<?php
$path = "file.iso" ;
$x = filesize ( $path ) / 1024 / 1024 ;
echo intval ( $x ) . " MB \n " ;
php filesize.php
dotnet new console -o FileSize && cd FileSize && vim Program.cs
string path = "file.iso" ;
long size = new System . IO . FileInfo ( path ). Length ;
Console . WriteLine ( ( size / 1024 ) / 1024 + " MB" );
dotnet run
filesize.js
const { readFileSync : read } = require ( ' fs ' )
const path = " file.iso "
let size = read ( path ). length
size = ( size / 1024 ) / 1024
console . log ( parseInt ( size ) + " MB " )
node filesize.js
filesize.go
package main
import ( "fmt" ; "os" )
func main (){
file , err := os . Stat ( "file.iso" )
_ = err
size := file . Size ()
fmt . Println ( ( size / 1024 ) / 1024 , "MB" )
}
go build filesize.go && ./filesize
ou go run filesize.go
Até o próximo artigo!
langs
cpp
linguagemc
java
csharp
lua
perl
php
python
javascript
nodejs
go
programacao
Marcos Oliveira
Desenvolvedor de software