#include <filesystem>
#include <string>
#include <vector>
#include "tinyxml.h"
using namespace std;
using namespace std::tr2::sys;
string ReadData(const char* str);
BOOL DirectoryList();
int main()
{
vector<string> fileLists;
string path = "C:\\Users\\Administrator\\AppData\\Roaming\\duowan\\yy\\mainframe\\account\\";
directory_iterator it(path);
while (it != directory_iterator()){
string tmp = it->path().string();
string fullpath = path + tmp;
fileLists.push_back(fullpath);
++it;
}
for (size_t i = 0;i < fileLists.size();i++)
{
string uniqueid = ReadData(fileLists[i].c_str());
cout<<uniqueid<<endl;
}
getchar();
return 0;
}
string ReadData(const char* str)
{
TiXmlDocument xdoc;
if (!xdoc.LoadFile(str)) {
return "LoadFile fail";
}
TiXmlElement* filexml = xdoc.RootElement();
if (filexml == NULL) {
cout<<"RootElement fail"<<endl;
}
TiXmlElement* xname = filexml->FirstChildElement("name");
TiXmlElement* uniqueid = filexml->FirstChildElement("uniqueid");
std::string uni = uniqueid->GetText();
return uni;
}
BOOL DirectoryList()
{
LPCWSTR Path = L"C:\\Users\\Administrator\\AppData\\Roaming\\duowan\\yy\\mainframe\\account\\*.*";
WIN32_FIND_DATA FindData;
HANDLE hError;
int FileCount = 0;
hError = FindFirstFile(Path, &FindData);
if (hError == INVALID_HANDLE_VALUE)
{
printf("搜索失败!");
return FALSE;
}
BOOL filebool = TRUE;
wchar_t FullPathName[MAX_PATH] = {0};
while(hError && filebool)
{
if (wcscmp(FindData.cFileName, L".") == 0 || wcscmp(FindData.cFileName, L"..") == 0 )
{
filebool = ::FindNextFile(hError, &FindData);
continue;
}
cout<<FindData.cFileName<<endl;
wsprintf(FullPathName, L"%s\\%s", Path,*FindData.cFileName);
FileCount++;
cout<<FullPathName<<endl;
filebool = ::FindNextFile(hError, &FindData);
if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//DirectoryList(FullPathName);
}
}
FindClose(hError);
cout<<FileCount<<endl;
return TRUE;
}