MB로 파일 크기를 얻는 방법?
서버에 파일이 있고 zip 파일입니다. 파일 크기가 27MB보다 큰지 확인하는 방법은 무엇입니까?
File file = new File("U:\intranet_root\intranet\R1112B2.zip");
if (file > 27) {
//do something
}
클래스 의 length()
메서드를 사용하여 File
파일 크기를 바이트 단위로 반환합니다.
// 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) {
...
}
변환을 하나의 단계로 결합 할 수 있지만 프로세스를 완전히 설명하려고 노력했습니다.
다음 코드를 시도하십시오.
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);
예 :
public static String getStringSizeLengthFile(long size) {
DecimalFormat df = new DecimalFormat("0.00");
float sizeKb = 1024.0f;
float sizeMb = sizeKb * sizeKb;
float sizeGb = sizeMb * sizeKb;
float sizeTerra = sizeGb * sizeKb;
if(size < sizeMb)
return df.format(size / sizeKb)+ " Kb";
else if(size < sizeGb)
return df.format(size / sizeMb) + " Mb";
else if(size < sizeTerra)
return df.format(size / sizeGb) + " Gb";
return "";
}
file.length () 는 길이를 바이트 단위로 반환 한 다음이를 1048576으로 나누면 메가 바이트가됩니다!
가장 쉬운 방법은 Apache commons-io의 FileUtils를 사용하는 것입니다 ( https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html )
사람이 읽을 수있는 파일 크기를 Bytes에서 Exabytes로 반환하고 경계로 내림합니다.
File fileObj = new File(filePathString);
String fileSizeReadable = FileUtils.byteCountToDisplaySize(fileObj.length());
// output will be like 56 MB
You can retrieve the length of the file with File#length(), which will return a value in bytes, so you need to divide this by 1024*1024 to get its value in mb.
Since Java 7 you can use 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)
More info on API : http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
You can use substring to get portio of String which is equal to 1 mb:
public static void main(String[] args) {
// Get length of String in bytes
String string = "long string";
long sizeInBytes = string.getBytes().length;
int oneMb=1024*1024;
if (sizeInBytes>oneMb) {
String string1Mb=string.substring(0, oneMb);
}
}
ReferenceURL : https://stackoverflow.com/questions/8989746/how-to-get-size-of-file-in-mb
'development' 카테고리의 다른 글
NSLog (@ "Inside of the iPhone Simulator")로 어떻게 디버깅합니까? (0) | 2020.12.31 |
---|---|
일반 목록의 표준 편차? (0) | 2020.12.31 |
jQuery UI 정렬 가능한 스크롤 도우미 요소 오프셋 Firefox 문제 (0) | 2020.12.31 |
배열에서 첫 번째 요소를 제거하고 첫 번째 요소를 뺀 배열을 반환합니다. (0) | 2020.12.30 |
Eclipse의 vim 명령 (0) | 2020.12.30 |