특정 코드에서 파일을 가져 오는이 코드가 있습니다. 시간별로 파일을 필터링하고 싶습니다. 파일 형식을 20 초 이하로 필터링하고 싶습니다. 코드에이 필터를 추가하려면 어떻게합니까? 고맙습니다.필터 추가
using namespace std;
typedef vector<WIN32_FIND_DATA> tFoundFilesVector;
std::wstring LastWriteTime;
int getFileList(const char * filespec, tFoundFilesVector &foundFiles)
{
WIN32_FIND_DATA findData;
HANDLE h;
int validResult=true;
int numFoundFiles = 0;
h = FindFirstFile((LPCSTR)filespec, &findData); //ansi
if (h == INVALID_HANDLE_VALUE)
return 0;
while (validResult)
{
numFoundFiles++;
foundFiles.push_back(findData);
validResult = FindNextFile(h, &findData);
}
return numFoundFiles;
}
void showFileAge(tFoundFilesVector &fileList)
{
unsigned _int64 fileTime, curTime, age;
tFoundFilesVector::iterator iter;
FILETIME ftNow;
CoFileTimeNow(&ftNow);
curTime = ((_int64) ftNow.dwHighDateTime << 32) + ftNow.dwLowDateTime;
for (iter=fileList.begin(); iter<fileList.end(); iter++)
{
fileTime = ((_int64)iter->ftLastWriteTime.dwHighDateTime << 32) + iter->ftLastWriteTime.dwLowDateTime;
age = curTime - fileTime;
wcout << "FILE: '" << iter->cFileName << "', AGE: " << (_int64)age/10000000UL << " seconds" << endl;
}
}
int main()
{
string fileSpec = "*.*";
tFoundFilesVector foundFiles;
tFoundFilesVector::iterator iter;
int foundCount = 0;
getFileList("c:\\Mapper\\*.txt", foundFiles);
getFileList("c:\\Mapper\\*.jpg", foundFiles);
foundCount = foundFiles.size();
if (foundCount)
{
wcout << "Found "<<foundCount<<" matching files.\n";
showFileAge(foundFiles);
}
system("pause");
return 0;
}
나는 이해할 수 없다. 이미 작성된 99.9 %의 코드가 있습니다. fileList 변수에서 20 초보다 오래된 모든 파일을 제거하고 싶다고 말하고 있습니까? (또는 그들을 지키십시오). 또는 시간을 기준으로 파일을 정렬 하시겠습니까? – selbie
20 초 이하의 파일 만 반환하고 싶습니다. 내가 그들을 지울테니까. 20 초 이하의 파일이 없으면 프로그램이 종료됩니다. 고맙습니다. –
연구 노력이 아니라는 것을 무엇을 의미합니까 !!! 어떻게 내가 이걸 얻을 수 있었 니? –