6
A
回答
4
我使用以下函數列出文件夾內的所有項目。它將所有的文件寫入一個字符串向量,但是你可以改變它。
bool ListContents (vector<string>& dest, string dir, string filter, bool recursively)
{
WIN32_FIND_DATAA ffd;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwError = 0;
// Prepare string
if (dir.back() != '\\') dir += "\\";
// Safety check
if (dir.length() >= MAX_PATH) {
Error("Cannot open folder %s: path too long", dir.c_str());
return false;
}
// First entry in directory
hFind = FindFirstFileA((dir + filter).c_str(), &ffd);
if (hFind == INVALID_HANDLE_VALUE) {
Error("Cannot open folder in folder %s: error accessing first entry.", dir.c_str());
return false;
}
// List files in directory
do {
// Ignore . and .. folders, they cause stack overflow
if (strcmp(ffd.cFileName, ".") == 0) continue;
if (strcmp(ffd.cFileName, "..") == 0) continue;
// Is directory?
if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// Go inside recursively
if (recursively)
ListContents(dest, dir + ffd.cFileName, filter, recursively, content_type);
}
// Add file to our list
else dest.push_back(dir + ffd.cFileName);
} while (FindNextFileA(hFind, &ffd));
// Get last error
dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES) {
Error("Error reading file list in folder %s.", dir.c_str());
return false;
}
return true;
}
(不要忘了包括WINDOWS.H)
你所要做的就是適應它來查找最新的文件。 ffd結構(WIN32_FIND_DATAA數據類型)包含ftCreationTime,ftLastAccessTime和ftLastWriteTime,您可以使用它們來查找最新的文件。 這些成員是FILETIME結構,你可以在這裏找到文檔:http://msdn.microsoft.com/en-us/library/windows/desktop/ms724284%28v=vs.85%29.aspx
1
0
Boost.Filesystem offers last_write_time。你可以用這個來排列directory
中的文件。對於C++新手來說,Boost.Filesystem
和(Boost)通常會有點嚇人,因此您可能需要首先檢查您的操作系統的解決方案。
相關問題
- 1. 最後修改的目錄
- 2. C#:從目錄中獲取5個最新(最後修改)的文件
- 3. 使用vi打開目錄中的最後修改文件
- 4. 獲取最後一次修改文件的目錄
- 5. Hadoop目錄/文件的最後修改時間
- 6. 目錄最後修改日期
- 7. 從目錄中選擇隨機文件
- 8. 從目錄中選擇某些文件
- 9. 從黑客(讀目錄,修改文件)
- 10. 在一組子目錄中修改最新文件的日期
- 11. Ruby - 根據條件從數組中選擇修改後的值
- 12. 如何列出(ls)目錄中的最後5個修改文件?
- 13. 如何獲取多個目錄中文件的最後修改日期?
- 14. 如何使用批處理文件修改所有文件和子目錄的時間戳(最後修改)
- 15. 如何在目錄(python)目錄中找到最近修改過的文件夾?
- 16. SimpleDB選擇修改項目
- 17. PHP:目錄中的最後文件
- 18. 如何在ftp上找到最新的最後修改目錄
- 19. 如何獲取最新(最後修改)的目錄[C#]
- 20. 刪除目錄中除最後3個修改後的文件以外的所有文件
- 21. 文件最後修改的問題
- 22. 如何從文件列表中獲取最後一個修改後的文件
- 23. 修改文件的名稱在目錄
- 24. 從嵌套目錄中檢索上次修改的文件名
- 25. CMD:文件的任務,打開目錄,然後選擇文件
- 26. AS3,從目錄中加載的最後文本文件
- 27. 從PHP下載從目錄中選擇的文件
- 28. 如何最後列出一個目錄中更改的文件
- 29. BASH:顯示修改日期的最後修改文件
- 30. 顯示最後修改時間文件
你有什麼試過嗎?你會如何解決這個問題?編輯你的問題。 – ScarletAmaranth
什麼操作系統?你需要一個可移植的代碼? –
我正在開發Windows平臺.. –