亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
利用c++,如何知道目錄下所有文件的大。ê幽夸洠
[打印本頁]
作者:
kaisakaisa
時間:
2004-02-11 10:09
標(biāo)題:
利用c++,如何知道目錄下所有文件的大。ê幽夸洠
如何知道目錄下所有文件的大。ê幽夸洠
類似于du -k 命令,獲得目錄中所有文件的大小
謝謝
作者:
huahua0459
時間:
2004-02-11 12:44
標(biāo)題:
利用c++,如何知道目錄下所有文件的大。ê幽夸洠
unsigned long dudir(char *dirname) {
unsigned long dirsize = 0;
DIR *dp;
struct dirent *ep;
dp = opendir (dirname);
if (dp != NULL) {
while (ep = readdir (dp)) {
調(diào)用stat分析ep->;d_namestat是正規(guī)文件還是目錄
如果ep->;d_name此文件是目錄則遞歸調(diào)用此函數(shù)
dirsize += dudir(ep->;d_name);
如果是正規(guī)文件則使用stat計算長度
dirsize += 文件長度
如果是其他類型則不計算?
}
(void) closedir (dp);
}
return dirsize;
}
可能需要更嚴(yán)謹(jǐn)些吧。
作者:
lonemoon
時間:
2004-02-11 14:04
標(biāo)題:
利用c++,如何知道目錄下所有文件的大。ê幽夸洠
以下是我在SOLARIS系統(tǒng)下測試成功的代碼,類似于ls命令的功能。
#include <iostream>;
using namespace std;
#include <sys/types.h>;
#include <sys/stat.h>;
#include <dirent.h>;
#include <time.h>;
int main(int argc, char* argv[])
{
DIR *dp;
struct dirent *dirp;
if (argc == 1)
dp = opendir( "." );
else
dp = opendir( argv[1] );
while ( (dirp = readdir(dp)) != NULL) {
struct stat st;
char fn[200];
if (argc == 1)
strcpy(fn, dirp->;d_name);
else
sprintf(fn, "%s//%s", argv[1], dirp->;d_name);
if( stat(fn, &st) < 0) {
cout << "error" << endl;
continue;
}
if S_ISREG(st.st_mode) {
cout << "-";
}else if S_ISDIR(st.st_mode) {
cout << "D";
}else if S_ISCHR(st.st_mode) {
cout << "C";
}else if S_ISBLK(st.st_mode) {
cout << "B";
}else if S_ISFIFO(st.st_mode) {
cout << "P";
}else if S_ISLNK(st.st_mode) {
cout << "L";
}else if S_ISSOCK(st.st_mode) {
cout << "S";
} else
cout << "?";
if (st.st_mode & S_IRUSR)
cout << "r";
else
cout << "-";
if (st.st_mode & S_IWUSR)
cout << "w";
else
cout << "-";
if (st.st_mode & S_IXUSR)
cout << "x";
else
cout << "-";
if (st.st_mode & S_IRGRP)
cout << "r";
else
cout << "-";
if (st.st_mode & S_IWGRP)
cout << "w";
else
cout << "-";
if (st.st_mode & S_IXGRP)
cout << "x";
else
cout << "-";
if (st.st_mode & S_IROTH)
cout << "r";
else
cout << "-";
if (st.st_mode & S_IWOTH)
cout << "w";
else
cout << "-";
if (st.st_mode & S_IXOTH)
cout << "x";
else
cout << "-";
cout << " " << ctime( &st.st_mtime ) << " ";
cout << " " << st.st_mtime;
cout << " " << st.st_uid << ":" << st.st_gid;
cout << " ";
cout.width(8);
cout << st.st_size;
cout << " " << dirp->;d_name << endl;
}
closedir(dp);
}
復(fù)制代碼
作者:
FH
時間:
2004-02-11 14:16
標(biāo)題:
利用c++,如何知道目錄下所有文件的大。ê幽夸洠
用ftw吧,比這簡單的多!
作者:
Law
時間:
2004-02-12 09:43
標(biāo)題:
利用c++,如何知道目錄下所有文件的大。ê幽夸洠
ftw是什么哦,能說清楚一點么?
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2