各位大虾,在windows系统中怎样遍历一个目录下的所有文件,得到所有文件的文件名和大小啊?

解决方案 »

  1.   

    CFileFind ff;
        BOOL bFound;
        int i=0;
        bFound = ff.FindFile(szPath + "\\*.*");
        while(bFound)
        {   
            bFound = ff.FindNextFile();
            cFilePath[i++] = ff.GetFilePath();
            cCreationTime[i++] = ff. GetCreationTime();
            cLastAccessTime[i++] = GetLastAccessTime();
            .
            //想要什么自己加
            .    }
      

  2.   

    http://www.vckbase.com/code/listcode.asp?mclsid=15&sclsid=1507
      

  3.   

    http://www.vckbase.com/bbs/prime/viewprime.asp?id=392
      

  4.   

    string strSourceFilePath = m_caSrcPath;
    vector<string> PathVector;
    PathVector.push_back(strSourceFilePath);
    WIN32_FIND_DATA FindData;
    int nSize = 1;
    //开始查找
    for (int i=0; i<nSize; ++i)
    {
    //变换目录
    strSourceFilePath = PathVector[i];
    strSourceFilePath += "*.*";//可该为自己需要的文件类型
    //在该目录下查找
    HANDLE hResult = FindFirstFile(strSourceFilePath.c_str(), &FindData);
    if (hResult == INVALID_HANDLE_VALUE)
    {
    continue;
    }
    //遍历该目录下每一个文件
    do
    {
    //如果是目录
    if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    {
    //如果不是"."或".."
    if (memcmp(FindData.cFileName, ".", 1) != 0)
    {
    strSourceFilePath = PathVector[i];
    strSourceFilePath += FindData.cFileName;
    strSourceFilePath += '\\';
    PathVector.push_back(strSourceFilePath);
    ++nSize;
    }
    continue;
    }
    else
    {
    //得到文件路径全名
    strSourceFilePath = PathVector[i];
    strSourceFilePath += FindData.cFileName;
    HANDLE hFileHandle = CreateFile(FilePathName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
    //得到文件大小
    int FileSize = GetFileSize(hFileHandle, NULL);
    }
    } while (FindNextFile(hResult, &FindData));
    //关闭查找
    FindClose(hResult);
    }
      

  5.   

    得到文件大小后
    CloseHandle(hFileHandle);