使用 MFC c++ 删除已装载驱动器的文件

Deleting files of mounted drive using MFC c++

本文关键字:驱动器 文件 MFC c++ 删除 使用      更新时间:2023-10-16

我想删除挂载驱动器的前 10 个文件。此驱动器是 Unix 系统驱动器。我编写的代码适用于本地驱动器,但不适用于挂载驱动器。它随机删除,但不是按顺序删除。我已经用 MFC C++ 编写了代码。如果有人知道解决方案,请告诉我。代码如下所示。

char fileFound[256];
WIN32_FIND_DATA info;
HANDLE hp=INVALID_HANDLE_VALUE;
int count=10;
swprintf_s(fileFound,256,"%s\*.*","G:\foldername");
hp=FindFirstFile(fileFound,&info);
do
{
swprintf_s(fileFound,256,"%s\%s","G:foldername",info.cFileName);
DeleteFile(fileFound);
count--;
}while(FindNextFile(hp,&info)&&count);
FindClose(hp);

它随机删除,但不是顺序删除。

记录了此行为:

[...]FindFirstFile不对搜索结果进行排序。

以及这里:

搜索返回文件的顺序(如字母顺序(无法保证,并且取决于文件系统。如果必须对数据进行排序,则应用程序必须在获取所有结果后执行排序。

如果需要从一组文件中删除前 n个文件,则需要收集整个文件集,根据任意谓词对集进行排序,然后对前n个项目执行操作。