#include <stdio.h>
#include <Windows.h>
using namespace std;
void FindFile(const char* filename)//函数语句:找出全盘文件
{
char tempPath[1000] = { 0 };
sprintf(tempPath, "%s\\*.*", filename);
WIN32_FIND_DATA finddata;//文件属性
HANDLE hfile = FindFirstFile(tempPath, &finddata);
while (1)
{
if (finddata.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)//文件夹
{
if (finddata.cFileName[0] != '.')
{
sprintf(tempPath, "%s\\%s", filename, finddata.cFileName);
printf("%s——————————————————\n", tempPath);
FindFile(tempPath);
}
}
else//文件
{
sprintf(tempPath, "%s\\%s", filename, finddata.cFileName);
printf("%s****************此处不读\n", tempPath);
}
if (FindNextFile(hfile, &finddata) == 0)
break;
}
}
int main()
{
char path[5] = { 0 };
unsigned alldisk;
printf("主人:\n正在为您检测U盘的拔插喵喵喵喵喵喵。。。。。。\n");
while(1)
{
alldisk = GetLogicalDrives();
for (int i = 0; i < 10; i++)
{
if ((alldisk & 1) == 1)
{
sprintf(path, "%c:", 'A' + i);
}
alldisk = alldisk >> 1;
}
if (GetDriveType(path) == DRIVE_REMOVABLE)
break;
}
printf("主人:\nU盘:%s已经插入喵", path);
FindFile("F:\Documents");
return 0;
}
一:

文件夹Documents中存在文件,不读取其中的文件。
二:


读取study文件夹里面的文件,但是不读取videos里面的文件。
求求大佬解答
递归一下
void FindFile(const char* filename)
{
char tempPath[1000] = { 0 };
sprintf(tempPath, "%s\\*.*", filename);
WIN32_FIND_DATA finddata;
HANDLE hfile = FindFirstFile(tempPath, &finddata);
if (hfile == INVALID_HANDLE_VALUE)
{
printf("无法打开目录: %s\n", filename);
return;
}
do
{
if (finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (strcmp(finddata.cFileName, ".") != 0 && strcmp(finddata.cFileName, "..") != 0)
{
sprintf(tempPath, "%s\\%s", filename, finddata.cFileName);
printf("%s——————————————————\n", tempPath);
FindFile(tempPath);
}
}
else
{
sprintf(tempPath, "%s\\%s", filename, finddata.cFileName);
printf("%s****************此处不读\n", tempPath);
}
} while (FindNextFile(hfile, &finddata) != 0);
FindClose(hfile);
}
不知道你这个问题是否已经解决, 如果还没有解决的话:进程具备文本、数据和堆栈片段以及它自己的资源。其中资源可以是文件、对象句柄、设备、信号量、互斥量、管道等等。操作系统中有大量的信息和进程息息相关。这些信息保存在一个叫做进程控制块、或者进程信息块的结构里面。
这个结构就是进程对操作系统的表现形式。重要信息定义和描述了对应进程。操作系统需要它来管理进程和它们的资源。用户通过函数调用或者访问数据结构来使用该结构中的信息。
与进程相关的信息都保存在对应的结构内,调用函数返回相关重要信息,例如进程信息块中的进程名字、ID号、内存和分配资源的指针、寄存器保存区、进程优先级等等。
其中进程ID是每个新进程关联的唯一标识。当操作系统重新获得CPU时间时,他就需要寄存器中保存区内的保存信息,来重新启动该进程。
进程的属性包含保存在进程信息快中的所有信息,以及信号、I/O、虚拟内存操作计数器、进程退出状态、异常调试端口等信息。
其中计数器主要是记录I/O操作类型和数量以及线程所执行虚拟内存操作的变量。
退出状态是指进程终止的原因。
异常调试端口是进程间通信渠道。