LinuxForum.Fans
Тема

Posix решение размер каталога

Автор: l_cho 7 сообщений 2038 просмотров
#302509

Добрый день , гугель ничего не дал по запросу как в Linux подсчитать размер каталога . С файлом проблем нет вот решение , но оно не подходит для каталога.

text

#include <iostream>
#include <sys/stat.h>
using namespace std;
 
int FileSize(const char *filename){
struct stat file_stat;
stat(filename,&file_stat);
cout<<file_stat.st_size<<endl;
}
 
int main(){
FileSize("/home");
return 0;
}
 
 
#302511

Решение

text

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

int main() { DIR *dir;// для работы с файлами переменная типа дир struct dirent *entry;

dir = opendir("/"); if (!dir) { perror("diropen"); return(1); };

while ( (entry = readdir(dir)) != NULL) { printf("%d - %s [%d] %d\n", entry->d_ino, entry->d_name, entry->d_type, entry->d_reclen); };

closedir(dir); };

#303780

Именно размер директории не выдает , только имя и еще 3 параметра. Так и не нашел решение такой на первый взгляд простой проблемы.

#303799

ещё раз, что по твоему «размер директории»?
stat.st_size выдаёт вполне корректный результат, правда и зависящий от ФС и, возможно, её реализации и системы...

#303804

ещё раз, что по твоему «размер директории»?

Размер папки , Размер каталога

text

#include <iostream>
#include <sys/stat.h>
using namespace std;

int FileSize(const char *filename){ struct stat file_stat; stat(filename,&file_stat); cout<<file_stat.st_size<<endl; }

int main(){

FileSize("/mnt"); return 0; }

Вывод 4096 , а размер там гигов за 100 переволил

#303864
"l_cho" написал:
Размер папки , Размер каталога

Его посчитать ещё надо, или забыл, что каталог это файл?

#303876

*WALL* Жестко туплю , MAN зачитал все понял. Спасибо

Войдите или зарегистрируйтесь, чтобы ответить.