Quantcast
Channel: CodeGuru Forums - Visual C++ Programming
Viewing all articles
Browse latest Browse all 3042

Map with two key values

$
0
0
I have an assignment where I need to go through all the files in a folder. For each file I need to know each unique file extension, how many files for each unique file extension, and the total size for each unique file extension. I have to be able to sort through this using either the file extension or the total size of the file extension. The first thing I thought of using was a map. This will keep track of each unique file extension and the amount of times that file extension was found. How do I now associate the total size of the file extension to my map? So for example I need the output to be something like this:

Using file extension for sort
.cpp : 1 : 3400
.exe : 3 : 3455600
.mp4 : 25 : 200000404

Using total file extension size for sort
.mp4 : 25 : 200000404
.exe : 3 : 3455600
.cpp : 1 : 3400

Here is the code I have so far:

Code:

#include <iostream>
#include <filesystem>
#include <map>

using namespace std;
using namespace std::tr2::sys;

void scan(path f)
{
        map<string, int> map;
        cout << "Scanning = " << system_complete(f) << endl;
        directory_iterator d(f);
        directory_iterator e;
        for( ; d != e; ++d)
        {
                path p = d->path();
                int temp = file_size(p);
                map[extension(p)]++;
        }
}

int main(int argc, char* argv[] )
{
        path folder = "..";

        scan(folder);

        return 0;
}

I was thinking of somehow using a class to implement this, but don't know how to go about doing that. Any input will help, thanks for you time.

Viewing all articles
Browse latest Browse all 3042

Trending Articles