列出目录 WinAPI 中的文件
Listing the Files in a Directory WinApi
在目录中,我只有3个文件(诗.txt,mac.txt,some_file.txt(。
为什么在我的输出中 2 个名称为"."和".." 的奇怪文件?
什么?
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
int main()
{
WIN32_FIND_DATA fileData;
HANDLE hFind = FindFirstFile(L"D:\Univesity\PROJECTS\OS_Course\poem_old\*", &fileData);
if (hFind != INVALID_HANDLE_VALUE) {
do {
//wcout << fileData.cFileName << endl;
WIN32_FIND_DATA compared_fileData;
HANDLE compared_hFind = FindFirstFile(L"D:\Univesity\PROJECTS\OS_Course\poem2_new\*", &compared_fileData);
if (compared_hFind != INVALID_HANDLE_VALUE) {
do {
//wcout << (wstring) fileData.cFileName << endl << (wstring) compared_fileData.cFileName;
if ( (wstring) fileData.cFileName == (wstring) compared_fileData.cFileName) {
FILETIME fileWriteTime = fileData.ftLastWriteTime;
FILETIME compared_fileWriteTime = compared_fileData.ftLastWriteTime;
/*
-1 First file time is earlier than second file time.
0 First file time is equal to second file time.
1 First file time is later than second file time.
*/
int comparationResult = CompareFileTime(&fileWriteTime, &compared_fileWriteTime);
if (comparationResult == 1) {
wcout << "Comparation: " << (wstring)fileData.cFileName << " is later than " << (wstring)compared_fileData.cFileName << endl;
}
else if (comparationResult == -1) {
wcout << "Comparation: " << (wstring)fileData.cFileName << " is earlier than " << (wstring)compared_fileData.cFileName << endl;
}
}
} while (FindNextFile(compared_hFind, &compared_fileData));
}
} while (FindNextFile(hFind, &fileData));
FindClose(hFind);
}
}
输出:
比较: . 晚于 。
比较:.. 晚于 ..
比较:黑色.txt早于黑色.txt
比较:mac.txt 早于 mac.txt
比较:some_file.txt晚于some_file.txt
.
和..
是伪目录。语义记录如下:
- 在路径中使用句点作为目录组件来表示当前目录,例如".\temp.txt"。有关详细信息,请参阅路径。
- 使用两个连续的句点 (..( 作为路径中的目录组件来表示当前目录的父目录,例如"..\temp.txt"。有关详细信息,请参阅路径。
相关文章:
- 连接资源文件中的字符串,并将其传递给菜单项字符串 (winapi) c++
- 如何使用 WINAPI 和 C++ 提取可执行文件的文件描述?
- 列出目录 WinAPI 中的文件
- 如何在C Winapi中获取活动文件Explorer窗口的路径
- 如何使用 WINAPI 读取整个二进制文件
- C :不正确的文件大小计算Winapi
- 使用对象文件调用Winapi功能
- Winapi:是否需要在可执行内存映射的文件上调用FlushInstructionCache
- WINAPI:文件存在检查失败
- Winapi ShellExecuteEx 不会打开该文件
- 使用 ReadFile WinAPI 读取'Binary'文件
- 使用 Win32/WINAPI 通过内存映射文件传输数据
- WinApi - 创建文件invalid_handle_value
- ReadFile winapi在从虚拟盒共享文件夹读取时失败.GetLastError正在引发错误183
- 使用Winapi从文件中读取数据
- WinAPI - 如果文件不存在,则创建.ini文件
- FindNextFile(...) 不要"看到"文件 WINAPI
- WinAPI 创建文件函数 2.
- 有没有办法使用 WINAPI 或 Embarcadero C++ Builder XE 创建共享目录/文件夹
- 使用winapi从桌面用c++打开一个文件