文件夹的问题!

fbmsf 2003-04-18 08:44:48
1 .我想请教大家,怎么得到一个文件夹的大小。(api)实现。
2 .在win9x,中有没有办法实现象BackupRead(NT)得函数。

也谈谈关于,文件夹得操作的函数。
...全文
32 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
fbmsf 2003-05-03
  • 打赏
  • 举报
回复
ok
fbmsf 2003-04-27
  • 打赏
  • 举报
回复
up
fbmsf 2003-04-20
  • 打赏
  • 举报
回复
的确是我错了,开始没有看清楚。

大家有没有关于BackupRead的代码,找了一下没有找到好的,
webber84 2003-04-20
  • 打赏
  • 举报
回复
FindNextFile返回的是一个BOOL值,表示是否还有满足条件的下一个文件。它是不会返回INVALID_HANDLE_VALUE的,所以bContinue永远不会是INVALID_HANDLE_VALUE
用户 昵称 2003-04-20
  • 打赏
  • 举报
回复
没有涉及bContinue=INVALID_HANDLE_VALUE,bContinue不是BOOL的吗?
用户 昵称 2003-04-19
  • 打赏
  • 举报
回复
http://www.codeproject.com/file/SADirRead/SADirRead_demo.zip

对某一个子目录进行统计的程序,很容易得到属性。
KcSoft 2003-04-19
  • 打赏
  • 举报
回复
可能没什么好方法了,只能一个个传过去,如果有,也贴出来告诉我。
KcSoft 2003-04-19
  • 打赏
  • 举报
回复
我们在点击文件夹的属性时,如果文件夹里面很多文件,文件的大小是变化着的,应该是计算出来的。
fbmsf 2003-04-19
  • 打赏
  • 举报
回复
看来只有计算了

我在写一个具域网的文件传输的程序,现在要传文件夹,大家有什么好方法吗?
zhenxizhou 2003-04-19
  • 打赏
  • 举报
回复
up
txdxun 2003-04-19
  • 打赏
  • 举报
回复
gz
u2m 2003-04-19
  • 打赏
  • 举报
回复
GetDiskFreeSpace这个是求磁盘剩余空间的,好像只有一个一个累加计算了
fbmsf 2003-04-19
  • 打赏
  • 举报
回复
up
这个递归写的不错,
但有点问题请教webber84(***闭关修炼中***)
bContinue=INVALID_HANDLE_VALUE 时 while(bContinue)是否会满足,而继续执行?
在我看来INVALID_HANDLE_VALUE = -1 ,而 False=0,的,至少在asm上的定义是这样。
而对于C++是否也是这样?(我搞asm多一点)。






guoxiny 2003-04-19
  • 打赏
  • 举报
回复
有这么一个函数GetDiskFreeSpace,我没用过不知道可不可以。
webber84 2003-04-19
  • 打赏
  • 举报
回复
闲来无事,自己写了一个:

BOOL GetDirectorySize(LPCTSTR lpDir,LPDWORD lpDirSizeLow,LPDWORD lpDirSizeHigh)
{
*lpDirSizeLow=*lpDirSizeHigh=0;
char lpTemp[MAX_PATH];
strcpy(lpTemp,lpDir);
int length=strlen(lpTemp);
if(lpTemp[length-1]!='\\')
strcat(lpTemp,"\\");
strcat(lpTemp,"*");
WIN32_FIND_DATA wfd;
HANDLE hFileFind=FindFirstFile(lpTemp,&wfd);
if(hFileFind==INVALID_HANDLE_VALUE)
return FALSE;
BOOL bContinue=TRUE;
while(bContinue)
{
if(!stricmp(wfd.cFileName,".")||!stricmp(wfd.cFileName,".."))
{
bContinue=FindNextFile(hFileFind,&wfd);
continue;
}
else
{
if(wfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
char lpSubDir[MAX_PATH];
strcpy(lpSubDir,lpDir);
if(lpSubDir[length-1]!='\\')
strcat(lpSubDir,"\\");
strcat(lpSubDir,wfd.cFileName);
DWORD dwSizeLow=0,dwSizeHigh=0;
GetDirectorySize(lpSubDir,
&dwSizeLow,&dwSizeHigh);
*lpDirSizeLow+=dwSizeLow;
*lpDirSizeHigh+=dwSizeHigh;
}
else
*lpDirSizeLow+=wfd.nFileSizeLow;
*lpDirSizeLow+=wfd.nFileSizeHigh;
}
bContinue=FindNextFile(hFileFind,&wfd);
}
return TRUE;
}
nonocast 2003-04-19
  • 打赏
  • 举报
回复
one by one
nonocast 2003-04-19
  • 打赏
  • 举报
回复
递归求和
maoxianwang 2003-04-18
  • 打赏
  • 举报
回复
用慢点的电脑就知道了

也是计算出来的
GoldenSword 2003-04-18
  • 打赏
  • 举报
回复
得到文件夹的大小好像只有递归求和了。Windows本身应该也是这么做的。
lblyy76 2003-04-18
  • 打赏
  • 举报
回复
我只会这么做,查找目录,把所有的文件的大小读出来,相加。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧