c++计算目录下所有子目录和文件大小
时间: 2023-05-16 16:03:40 浏览: 250
计算目录下所有子目录和文件大小可以用以下几个步骤:
1. 遍历目录下的所有文件和子目录,可使用 os 模块中的 os.listdir() 函数返回目录下的文件和子目录列表,可以用 for 循环遍历该列表,判断是目录还是文件。
2. 如果是目录,则递归调用函数本身,继续遍历该目录下的子目录和文件。
3. 如果是文件,则使用 os.path.getsize() 函数获取文件大小,累加到总大小。
4. 递归结束后,返回总大小即可。
下面是示例代码:
import os
def get_dir_size(path):
size = 0 # 初始化总大小
for root, dirs, files in os.walk(path):
for name in files:
full_path = os.path.join(root, name) # 获取文件绝对路径
size += os.path.getsize(full_path) # 获取文件大小并累加到总大小
return size
如果想要得到更友好的文件大小显示,可以使用以下函数进行转换:
def get_human_readable_size(size):
units = ['B', 'KB', 'MB', 'GB', 'TB']
for unit in units:
if size < 1024:
return f"{size:.2f} {unit}"
size /= 1024
return f"{size:.2f} {units[-1]}"
使用示例:
dir_path = "/path/to/dir"
dir_size = get_dir_size(dir_path)
print(f"目录 {dir_path} 下的文件和子目录总大小为:{get_human_readable_size(dir_size)}")