
在说oswalk前,我们先在ipython3中help一下,打印如下
oswalk返回一个生成器,每次遍历返回的对象是一个元组,元组中包含三个元素:
dirpath:当前遍历的文件夹的路径,类型为字符串;
dirname:当前遍历的文件夹下的子文件夹的名字,类型为列表;
filenames:当前遍历的文件夹下的文件的名字,类型为列表;
创建一个包含子文件夹和文件的walk文件夹,通过终端tree看一下目录结构:
我们通过for循环遍历oswalk()的返回结果
运行结果如下:
使用oswalk()获取文件夹下的文件大小:
1先用fseek将文件指针移到文件末尾,再用ftell获取文件内指针当前的文件位置。这个位置就是文件大小。
2#include <stdioh>
int main()
{
FILE pf = fopen("F:/1png", "rb");
if (!pf)
return -1;
fseek(pf, 0, SEEK_END); // 移到文件末尾
printf("size = %d\n", ftell(pf));
fclose(pf);
return 0;
}
3运行结果如下
查询具体的文件大小首先你要找到该文件,然后使用du -s ,du -sh,ls -lh,都是可以看到该文件的大小的。 不过这些命令后面需要带文件名,比如查找文件名为backupsh文件的大小,命令为:du -s backupsh ,ls -lh backupsh。更多Linux *** 作知识,可以百度《Linux就该这么学》。
没啥好的办法,只能用遍历解决,下面是完整的方法,但没考虑到隐藏文件和系统文件。
private long GetDictSize(string path)
{
if (!SystemIODirectoryExists(path))
return 0;
string[] fs = SystemIODirectoryGetFiles(path, "", SystemIOSearchOptionAllDirectories);
//获取该文件夹中所有的文件名
long ll = 0;
foreach (string f in fs) {
dynamic fa = SystemIOFileGetAttributes(f);
SystemIOFileInfo fi = new SystemIOFileInfo(f);
ll += fiLength;
}
return ll;
}
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起双击运行
@echo off
rem 获取当前目录里一个指定名称文件的大小
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "file=指定文件zip"
if not exist "%file%" (echo;"%file%" not found&pause&exit)
for /f "delims=" %%a in ('dir /a-d-h/b "%file%"') do echo;%%~za
echo;%#% +%$%%$%/%@% %z%
pause
exit
获取文件大小不需要安装额外的模块,用-s *** 作符即可:
假设文件路径在变量$file_path中,那么$file_size文件大小可以用如下语句获得:
$file_size = -s $file_path;
得到的结果单位为Byte(字节),如果要换算成KB,则将结果除1024,如果要换算成MB,则再除1024,以此类推。
要获取的尺寸,可以用模块 Image::Size
use Image::Size;
my ($globe_x, $globe_y) = imgsize($file_path);
大概有这些方法可以获得文件大小
FileSizeByName(需要引用IdGlobal单元)
GetFileSize
FileSize(不能获得正在使用的文件大小)
FileSeek
TFileStreamSize
下面是使用例子
1。FileSizeByName(需要引用IdGlobal单元)
begin
if
OpenDialog1Execute
then
begin
ShowMessage(IntToStr(FileSizeByName(OpenDialog1Filename)));
end;
2。GetFileSize
var
FileHandle:integer;
begin
if
OpenDialog1Execute
then
begin
FileHandle
:=
FileOpen(OpenDialog1FileName,
0);
ShowMessage(IntToStr(GetFileSize(FileHandle,
nil)));
FileClose(FileHandle);
end;
3。FileSize(不能获得正在使用的文件大小)
var
f:
file;
begin
if
OpenDialog1Execute
then
begin
AssignFile(f,
OpenDialog1FileName);
Reset(f,
1);
ShowMessage(IntToStr(FileSize(f)));
CloseFile(f);
end;
4。FileSeek
var
FileHandle:integer;
begin
if
OpenDialog1Execute
then
begin
FileHandle
:=
FileOpen(OpenDialog1FileName,
0);
ShowMessage(IntToStr(FileSeek(FileHandle,0,2)));
FileClose(FileHandle);
end;
5。TFileStreamSize
var
FS:
TFileStream;
begin
if
OpenDialog1Execute
then
begin
FS
:=
TFileStreamCreate(OpenDialog1FileName,
fmShareDenyNone);
ShowMessage(IntToStr(FSSize));
FSFree;
end;
另在IdGlobalProtocols中有个FileSizeByName()的函数。
你好,这边有一个示例代码,希望对你有所帮助。示例中的urlString,你可以下载之后看看是否跟打印信息大小一致。我这边是一致的。
p:所导入的包都是javanet下面的。
main方法中 直接调用这个函数即可。
static int getNetWorkFile( ){String urlString=">
以上就是关于【Python】os.walk的使用及获取文件夹下所有文件的大小全部的内容,包括:【Python】os.walk的使用及获取文件夹下所有文件的大小、如何用C语言获取文件的大小、linux下怎样得到文件的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)