我需要一种方法来使用C#获取文件的大小,而不是磁盘上的大小.这怎么可能?
目前我有这个循环
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
Run Code Online (Sandbox Code Playgroud)
这会返回磁盘上的大小或大小吗?
找到我的git存储库大小的简单方法是什么?而且我不是指du -h我的仓库的根目录.我有很多被忽略的文件,因此大小与我的总回购大小不同.我基本上想知道在克隆我的回购时会传输多少数据.
我正在使用此函数将文件大小(以字节为单位)转换为人类可读的文件大小:
function getReadableFileSizeString(fileSizeInBytes) {
var i = -1;
var byteUnits = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB'];
do {
fileSizeInBytes = fileSizeInBytes / 1024;
i++;
} while (fileSizeInBytes > 1024);
return Math.max(fileSizeInBytes, 0.1).toFixed(1) + byteUnits[i];
};
Run Code Online (Sandbox Code Playgroud)
但是,似乎这并非100%准确.例如:
getReadableFileSizeString(1551859712); // output is "1.4 GB"
Run Code Online (Sandbox Code Playgroud)
不应该这样"1.5 GB"吗?似乎1024的划分正在失去精度.我完全误解了某些东西,还是有更好的方法来做到这一点?
Web上有各种片段,可以为您提供从字节大小返回人类可读大小的功能:
>>> human_readable(2048)
'2 kilobytes'
>>>
Run Code Online (Sandbox Code Playgroud)
但是有没有提供这个的Python库?
谷歌搜索时,我发现使用java.io.File#length()可能很慢.
FileChannel有一个size()方法也可用.
在java中有一种有效的方法来获取文件大小吗?
如何计算文件的大小(以字节为单位)?
#include <stdio.h>
unsigned int fsize(char* file){
//what goes here?
}
Run Code Online (Sandbox Code Playgroud) 让我们为这个问题创建一个补充问题.在C++中获取文件大小的最常用方法是什么?在回答之前,确保它是可移植的(可以在Unix,Mac和Windows上执行),可靠,易于理解且没有库依赖(没有boost或qt,但是例如glib是可以的,因为它是可移植的库).
如何filesize()使用MegaBytes,KiloBytes等将PHP 函数的输出转换为漂亮的格式?
喜欢:
var length = new System.IO.FileInfo(path).Length;
Run Code Online (Sandbox Code Playgroud)
这给出了文件的逻辑大小,而不是磁盘上的大小.
我想在C#中获取磁盘上文件的大小(最好没有互操作),如Windows资源管理器所报告的那样.
它应该给出正确的大小,包括: