遍历文件时使用WIN32_FIND_DATA结构体

WIN32_FIND_DATA文件结构说明:

typedef struct _WIN32_FIND_DATA {
  DWORD dwFileAttributes; //文件属性
  FILETIME ftCreationTime; // 文件创建时间
  FILETIME ftLastAccessTime; // 文件最后一次访问时间
  FILETIME ftLastWriteTime; // 文件最后一次修改时间
  DWORD nFileSizeHigh; // 文件长度高32位
  DWORD nFileSizeLow; // 文件长度低32位
  DWORD dwReserved0; // 系统保留
  DWORD dwReserved1; // 系统保留
  TCHAR cFileName[ MAX_PATH ]; // 文件名
  TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名

  } WIN32_FIND_DATA, *PWIN32_FIND_DATA;


// 使用此结构体遍历文件的伪代码过程类似于下面

void Enum(char* szPath)

{

WIN32_FIND_DATA wfda;

HANDLE hFind=::FindFirstFileA(szFind,&wfda);

if(INVALID_HANDLE_VALUE==hFind)
{
return FALSE;
}

while(true)

{

// 是目录

if(wfda.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

{

//不是 .  ..目录

if(wfda.cFileName[0] != '.')

{

Enum(); //递归

}

}

else

{

//是文件,添加自己的处理

}

//找不到文件了,跳出去

if(!FindNextFileA())

{

break;

}

}

FindClose(hFind);
return TRUE;

}

  另外结构体最后一个cAlternateFileName变量是短文件名(类似于C:\PROGRA~1),

  如果要转换成长文件名使用GetLongPathName

  如果要将长文件名换成短文件名使用GetShortPathName



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值