comment obtenir la taille du fichier en mb?

J’ai un fichier sur un serveur et c’est un fichier zip. Comment vérifier si la taille du fichier est supérieure à 27 Mo?

File file = new File("U:\intranet_root\intranet\R1112B2.zip"); if (file > 27) { //do something } 

Utilisez la méthode length() de la classe File pour renvoyer la taille du fichier en octets.

 // Get file from file name File file = new File("U:\intranet_root\intranet\R1112B2.zip"); // Get length of file in bytes long fileSizeInBytes = file.length(); // Convert the bytes to Kilobytes (1 KB = 1024 Bytes) long fileSizeInKB = fileSizeInBytes / 1024; // Convert the KB to MegaBytes (1 MB = 1024 KBytes) long fileSizeInMB = fileSizeInKB / 1024; if (fileSizeInMB > 27) { ... } 

Vous pouvez combiner la conversion en une seule étape, mais j’ai essayé d’illustrer complètement le processus.

Essayez le code suivant:

 File file = new File("infilename"); // Get the number of bytes in the file long sizeInBytes = file.length(); //transform in MB long sizeInMb = sizeInBytes / (1024 * 1024); 

Exemple :

 public static Ssortingng getSsortingngSizeLengthFile(long size) { DecimalFormat df = new DecimalFormat("0.00"); float sizeKb = 1024.0f; float sizeMo = sizeKb * sizeKb; float sizeGo = sizeMo * sizeKb; float sizeTerra = sizeGo * sizeKb; if(size < sizeMo) return df.format(size / sizeKb)+ " Kb"; else if(size < sizeGo) return df.format(size / sizeMo) + " Mo"; else if(size < sizeTerra) return df.format(size / sizeGo) + " Go"; return ""; } 

file.length () vous renverra la longueur en octets, puis vous diviserez cela par 1048576 , et maintenant vous avez des mégaoctets!

Le plus simple est d’utiliser FileUtils d’Apache commons-io ( https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html )

Renvoie la taille du fichier lisible par l’homme, de Bytes à Exaoctets, en arrondissant à la limite.

 File fileObj = new File(filePathSsortingng); Ssortingng fileSizeReadable = FileUtils.byteCountToDisplaySize(fileObj.length()); // output will be like 56 MB 

Vous pouvez récupérer la longueur du fichier avec File # length () , qui renverra une valeur en octets. Vous devez donc diviser cette valeur par 1024 * 1024 pour obtenir sa valeur en mb.

Depuis Java 7, vous pouvez utiliser java.nio.file.Files.size(Path p) .

 Path path = Paths.get("C:\\1.txt"); long expectedSizeInMB = 27; long expectedSizeInBytes = 1024 * 1024 * expectedSizeInMB; long sizeInBytes = -1; try { sizeInBytes = Files.size(path); } catch (IOException e) { System.err.println("Cannot get the size - " + e); return; } if (sizeInBytes > expectedSizeInBytes) { System.out.println("Bigger than " + expectedSizeInMB + " MB"); } else { System.out.println("Not bigger than " + expectedSizeInMB + " MB"); } 
 public static long sizeOf(File file) 

Plus d’informations sur l’API: http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html

Vous pouvez utiliser une sous-chaîne pour obtenir le portio de Ssortingng qui est égal à 1 mb:

 public static void main(Ssortingng[] args) { // Get length of Ssortingng in bytes Ssortingng ssortingng = "long ssortingng"; long sizeInBytes = ssortingng.getBytes().length; int oneMb=1024*1024; if (sizeInBytes>oneMb) { Ssortingng ssortingng1Mb=ssortingng.subssortingng(0, oneMb); } }