gpt4 book ai didi

c++ - 使用 ReadDirectoryChangesW C++ 重命名文件夹后获取旧名称和新名称

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:44 25 4
gpt4 key购买 nike

我正在使用 ReadDirectoryChangesW 来识别文件夹更改。当我重命名文件夹时,FILE_ACTION_RENAMED_OLD_NAME 操作被触发,我能够获得该文件夹的旧名称。但我想获得该文件夹的旧名称和新名称。是否可以直接使用 ReadDirectoryChangesW

我的C++代码是

ReadDirectoryChangesW ( hDir, (LPVOID)&strFileNotifyInfo, 
sizeof(strFileNotifyInfo),
TRUE,
FILE_NOTIFY_CHANGE_DIR_NAME,
&dwBytesReturned,
NULL,
NULL)

最佳答案

您可以使用 _FILE_NOTIFY_INFORMATION .通过使用 FILE_NOTIFY_INFORMATION::NextEntryOffset 成员变量,您还可以获得 FILE_ACTION_RENAMED_NEW_VALUE

这是一个小代码片段。在您的回调中,

PFILE_NOTIFY_INFORMATION info   = NULL;
size_t offset = 0;

do
{
info = reinterpret_cast<PFILE_NOTIFY_INFORMATION>(&buffer[offset]);
offset += info->NextEntryOffset;

if(info->Action == FILE_ACTION_ADDED)
{

}
else if(info->Action == FILE_ACTION_REMOVED)
{

}
else if(info->Action == FILE_ACTION_MODIFIED)
{

}
else if(info->Action == FILE_ACTION_RENAMED_OLD_NAME)
{
//extract old name by using 'info'
}
else if(info->Action == FILE_ACTION_RENAMED_NEW_NAME)
{
//extract new name by using 'info'
}

} while (info->NextEntryOffset != 0);

希望对您有所帮助。

关于c++ - 使用 ReadDirectoryChangesW C++ 重命名文件夹后获取旧名称和新名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22396230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com